]> granicus.if.org Git - llvm/commitdiff
[MCA][X86] Add tests for LOCK variants of standard X86 arithmetic ops
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 20 Aug 2019 11:13:20 +0000 (11:13 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 20 Aug 2019 11:13:20 +0000 (11:13 +0000)
D66424 adds the base support for LOCK so we should be able to add special case support for all these cases in future patches

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@369367 91177308-0d34-0410-b5e6-96231b3b80d8

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

index 894292b99820c9ffea342657af52c1727099c552..9fb2ce15c8fca28e8d9da809c878cf0bd1de97e7 100644 (file)
 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,30 +291,34 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
-lock cmpxchgb  %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
-lock cmpxchgw  %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
-lock cmpxchgl  %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
-lock 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        adcb   $0, %al
 # CHECK-NEXT:  1      1     0.50                        adcb   $0, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcb    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        adcb   $7, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcb   %sil, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   adcb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        adcw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        adcw   $0, %di
 # CHECK-NEXT:  1      1     1.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcw    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        adcw   $511, %di
 # CHECK-NEXT:  1      1     1.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   $7, %di
 # CHECK-NEXT:  1      1     1.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   %si, %di
 # CHECK-NEXT:  1      1     1.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   adcw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        adcl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        adcl   $0, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcl    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        adcl   $665536, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   $7, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   %esi, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   adcl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        adcq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        adcq   $0, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcq    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        adcq   $665536, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   $7, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   %rsi, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        addb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        addb   $7, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addb   %sil, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   addb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        addw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        addw   $511, %di
 # CHECK-NEXT:  1      1     1.00    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addw   $7, %di
 # CHECK-NEXT:  1      1     1.00    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addw   %si, %di
 # CHECK-NEXT:  1      1     1.00    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   addw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        addl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        addl   $665536, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addl   $7, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addl   %esi, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   addl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        addq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        addq   $665536, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addq   $7, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addq   %rsi, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   addq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        andb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        andb   $7, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andb   %sil, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   andb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        andw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        andw   $511, %di
 # CHECK-NEXT:  1      1     1.00    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andw   $7, %di
 # CHECK-NEXT:  1      1     1.00    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andw   %si, %di
 # CHECK-NEXT:  1      1     1.00    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   andw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        andl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        andl   $665536, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andl   $7, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andl   %esi, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   andl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        andq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        andq   $665536, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andq   $7, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andq   %rsi, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  1      16    8.00                        bsfw   %si, %di
 # CHECK-NEXT:  1      16    8.00                        bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      11    5.50    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  1      11    5.50    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  1      11    5.50    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  1      11    5.50    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  1      11    5.50    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  1      11    5.50    *      *            lock           btsw    %si, (%rax)
 # CHECK-NEXT:  1      1     1.00                        btw    $7, %di
 # CHECK-NEXT:  1      1     1.00                        btcw   $7, %di
 # CHECK-NEXT:  1      1     1.00                        btrw   $7, %di
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      2     1.00    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  1      2     1.00    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  1      2     1.00    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  1      2     1.00    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  1      2     1.00    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  1      2     1.00    *      *            lock           btsw    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        btl    %esi, %edi
 # CHECK-NEXT:  1      1     1.00                        btcl   %esi, %edi
 # CHECK-NEXT:  1      1     1.00                        btrl   %esi, %edi
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      11    5.50    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  1      11    5.50    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  1      11    5.50    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  1      11    5.50    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  1      11    5.50    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  1      11    5.50    *      *            lock           btsl    %esi, (%rax)
 # CHECK-NEXT:  1      1     1.00                        btl    $7, %edi
 # CHECK-NEXT:  1      1     1.00                        btcl   $7, %edi
 # CHECK-NEXT:  1      1     1.00                        btrl   $7, %edi
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      2     1.00    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  1      2     1.00    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  1      2     1.00    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  1      2     1.00    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  1      2     1.00    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  1      2     1.00    *      *            lock           btsl    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        btq    %rsi, %rdi
 # CHECK-NEXT:  1      1     1.00                        btcq   %rsi, %rdi
 # CHECK-NEXT:  1      1     1.00                        btrq   %rsi, %rdi
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      11    5.50    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  1      11    5.50    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  1      11    5.50    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  1      11    5.50    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  1      11    5.50    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  1      11    5.50    *      *            lock           btsq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     1.00                        btq    $7, %rdi
 # CHECK-NEXT:  1      1     1.00                        btcq   $7, %rdi
 # CHECK-NEXT:  1      1     1.00                        btrq   $7, %rdi
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      2     1.00    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  1      2     1.00    *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  1      2     1.00    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  1      2     1.00    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  1      2     1.00    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  1      2     1.00    *      *            lock           btsq    $7, (%rax)
 # CHECK-NEXT:  1      4     2.00                        cbtw
 # CHECK-NEXT:  1      4     2.00                        cwtl
 # CHECK-NEXT:  1      4     2.00                        cltq
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      121   60.50                 U     cpuid
 # CHECK-NEXT:  1      1     0.50                        decb   %dil
 # CHECK-NEXT:  1      1     1.00    *      *            decb   (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     0.50                        decw   %di
 # CHECK-NEXT:  1      1     1.00    *      *            decw   (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     0.50                        decl   %edi
 # CHECK-NEXT:  1      1     1.00    *      *            decl   (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        decq   %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            decq   (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           decq    (%rax)
 # CHECK-NEXT:  1      50    25.00                 U     divb   %dil
 # CHECK-NEXT:  1      68    34.00   *             U     divb   (%rax)
 # CHECK-NEXT:  1      50    25.00                 U     divw   %si
@@ -1182,12 +1368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      94    47.00                 U     inl    %dx, %eax
 # CHECK-NEXT:  1      1     0.50                        incb   %dil
 # CHECK-NEXT:  1      1     1.00    *      *            incb   (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     0.50                        incw   %di
 # CHECK-NEXT:  1      1     1.00    *      *            incw   (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     0.50                        incl   %edi
 # CHECK-NEXT:  1      1     1.00    *      *            incl   (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        incq   %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            incq   (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           incq    (%rax)
 # CHECK-NEXT:  1      59    29.50                 U     insb   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      59    29.50                 U     insw   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      59    29.50                 U     insl   %dx, %es:(%rdi)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      12    6.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     0.50                        negb   %dil
 # CHECK-NEXT:  1      1     1.00    *      *            negb   (%r8)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     0.50                        negw   %si
 # CHECK-NEXT:  1      1     1.00    *      *            negw   (%r9)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     0.50                        negl   %edx
 # CHECK-NEXT:  1      1     1.00    *      *            negl   (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        negq   %rcx
 # CHECK-NEXT:  1      1     1.00    *      *            negq   (%r10)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           negq    (%r10)
 # CHECK-NEXT:  1      1     0.50                        nop
 # CHECK-NEXT:  1      1     0.50                        nopw   %di
 # CHECK-NEXT:  1      1     0.50                        nopw   (%rcx)
@@ -1251,41 +1445,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        nopq   (%r9)
 # CHECK-NEXT:  1      1     0.50                        notb   %dil
 # CHECK-NEXT:  1      1     1.00    *      *            notb   (%r8)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     0.50                        notw   %si
 # CHECK-NEXT:  1      1     1.00    *      *            notw   (%r9)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     0.50                        notl   %edx
 # CHECK-NEXT:  1      1     1.00    *      *            notl   (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        notq   %rcx
 # CHECK-NEXT:  1      1     1.00    *      *            notq   (%r10)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           notq    (%r10)
 # CHECK-NEXT:  1      1     0.50                        orb    $7, %al
 # CHECK-NEXT:  1      1     0.50                        orb    $7, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orb    %sil, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   orb    (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        orw    $511, %ax
 # CHECK-NEXT:  1      1     0.50                        orw    $511, %di
 # CHECK-NEXT:  1      1     1.00    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orw    $7, %di
 # CHECK-NEXT:  1      1     1.00    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orw    %si, %di
 # CHECK-NEXT:  1      1     1.00    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   orw    (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        orl    $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        orl    $665536, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orl    $7, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orl    %esi, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   orl    (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        orq    $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        orq    $665536, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orq    $7, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orq    %rsi, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  1      72    36.00                 U     outb   %al, $7
 # CHECK-NEXT:  1      68    34.00                 U     outb   %al, %dx
@@ -1473,44 +1682,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        sbbb   $0, %al
 # CHECK-NEXT:  1      1     0.50                        sbbb   $0, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbb    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        sbbb   $7, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbb   %sil, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   sbbb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        sbbw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        sbbw   $0, %di
 # CHECK-NEXT:  1      1     1.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbw    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        sbbw   $511, %di
 # CHECK-NEXT:  1      1     1.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   $7, %di
 # CHECK-NEXT:  1      1     1.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   %si, %di
 # CHECK-NEXT:  1      1     1.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   sbbw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        sbbl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        sbbl   $0, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbl    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        sbbl   $665536, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   $7, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   %esi, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   sbbl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        sbbq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        sbbq   $0, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbq    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        sbbq   $665536, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   $7, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  1      2     1.00                  U     scasb  %es:(%rdi), %al
 # CHECK-NEXT:  1      2     1.00                  U     scasw  %es:(%rdi), %ax
@@ -1581,32 +1805,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        subb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        subb   $7, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subb   %sil, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   subb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        subw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        subw   $511, %di
 # CHECK-NEXT:  1      1     1.00    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subw   $7, %di
 # CHECK-NEXT:  1      1     1.00    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subw   %si, %di
 # CHECK-NEXT:  1      1     1.00    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   subw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        subl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        subl   $665536, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subl   $7, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subl   %esi, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   subl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        subq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        subq   $665536, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subq   $7, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subq   %rsi, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        testb  $7, %al
 # CHECK-NEXT:  1      1     0.50                        testb  $7, %dil
@@ -1638,53 +1873,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      202   101.00                U     wrmsr
 # CHECK-NEXT:  1      2     1.00                        xaddb  %bl, %cl
 # CHECK-NEXT:  1      3     1.50    *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  1      3     1.50    *      *            lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT:  1      2     1.00                        xaddw  %bx, %cx
 # CHECK-NEXT:  1      3     1.50    *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  1      3     1.50    *      *            lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT:  1      2     1.00                        xaddl  %ebx, %ecx
 # CHECK-NEXT:  1      3     1.50    *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  1      3     1.50    *      *            lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT:  1      2     1.00                        xaddq  %rbx, %rcx
 # CHECK-NEXT:  1      3     1.50    *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  1      3     1.50    *      *            lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT:  1      2     1.00                        xchgb  %bl, %cl
 # CHECK-NEXT:  1      3     1.50    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  1      3     1.50    *      *            lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT:  1      2     1.00                        xchgw  %bx, %ax
 # CHECK-NEXT:  1      2     1.00                        xchgw  %bx, %cx
 # CHECK-NEXT:  1      3     1.50    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  1      3     1.50    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  1      2     1.00                        xchgl  %ebx, %eax
 # CHECK-NEXT:  1      2     1.00                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  1      3     1.50    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  1      3     1.50    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  1      2     1.00                        xchgq  %rbx, %rax
 # CHECK-NEXT:  1      2     1.00                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  1      3     1.50    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  1      3     1.50    *      *            lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  1      6     3.00    *                   xlatb
 # CHECK-NEXT:  1      1     0.50                        xorb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        xorb   $7, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorb   %sil, %dil
 # CHECK-NEXT:  1      1     1.00    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   xorb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        xorw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        xorw   $511, %di
 # CHECK-NEXT:  1      1     1.00    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorw   $7, %di
 # CHECK-NEXT:  1      1     1.00    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorw   %si, %di
 # CHECK-NEXT:  1      1     1.00    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   xorw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        xorl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        xorl   $665536, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorl   $7, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorl   %esi, %edi
 # CHECK-NEXT:  1      1     1.00    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   xorl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        xorq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        xorq   $665536, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorq   $7, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorq   %rsi, %rdi
 # CHECK-NEXT:  1      1     1.00    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  1      1     1.00    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     1.00    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1693,111 +1947,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]
-# CHECK-NEXT: 2714.50 2362.50
+# CHECK-NEXT: 2886.00 2433.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    Instructions:
 # CHECK-NEXT: 0.50   0.50   adcb       $0, %al
 # CHECK-NEXT: 0.50   0.50   adcb       $0, %dil
 # CHECK-NEXT: 1.00    -     adcb       $0, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcb    $0, (%rax)
 # CHECK-NEXT: 0.50   0.50   adcb       $7, %al
 # CHECK-NEXT: 0.50   0.50   adcb       $7, %dil
 # CHECK-NEXT: 1.00    -     adcb       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcb    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   adcb       %sil, %dil
 # CHECK-NEXT: 1.00    -     adcb       %sil, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcb    %sil, (%rax)
 # CHECK-NEXT: 1.00    -     adcb       (%rax), %dil
 # CHECK-NEXT: 0.50   0.50   adcw       $0, %ax
 # CHECK-NEXT: 0.50   0.50   adcw       $0, %di
 # CHECK-NEXT: 1.00    -     adcw       $0, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcw    $0, (%rax)
 # CHECK-NEXT: 0.50   0.50   adcw       $511, %ax
 # CHECK-NEXT: 0.50   0.50   adcw       $511, %di
 # CHECK-NEXT: 1.00    -     adcw       $511, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcw    $511, (%rax)
 # CHECK-NEXT: 0.50   0.50   adcw       $7, %di
 # CHECK-NEXT: 1.00    -     adcw       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   adcw       %si, %di
 # CHECK-NEXT: 1.00    -     adcw       %si, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcw    %si, (%rax)
 # CHECK-NEXT: 1.00    -     adcw       (%rax), %di
 # CHECK-NEXT: 0.50   0.50   adcl       $0, %eax
 # CHECK-NEXT: 0.50   0.50   adcl       $0, %edi
 # CHECK-NEXT: 1.00    -     adcl       $0, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcl    $0, (%rax)
 # CHECK-NEXT: 0.50   0.50   adcl       $665536, %eax
 # CHECK-NEXT: 0.50   0.50   adcl       $665536, %edi
 # CHECK-NEXT: 1.00    -     adcl       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcl    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   adcl       $7, %edi
 # CHECK-NEXT: 1.00    -     adcl       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   adcl       %esi, %edi
 # CHECK-NEXT: 1.00    -     adcl       %esi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcl    %esi, (%rax)
 # CHECK-NEXT: 1.00    -     adcl       (%rax), %edi
 # CHECK-NEXT: 0.50   0.50   adcq       $0, %rax
 # CHECK-NEXT: 0.50   0.50   adcq       $0, %rdi
 # CHECK-NEXT: 1.00    -     adcq       $0, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcq    $0, (%rax)
 # CHECK-NEXT: 0.50   0.50   adcq       $665536, %rax
 # CHECK-NEXT: 0.50   0.50   adcq       $665536, %rdi
 # CHECK-NEXT: 1.00    -     adcq       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcq    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   adcq       $7, %rdi
 # CHECK-NEXT: 1.00    -     adcq       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   adcq       %rsi, %rdi
 # CHECK-NEXT: 1.00    -     adcq       %rsi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               adcq    %rsi, (%rax)
 # CHECK-NEXT: 1.00    -     adcq       (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   addb       $7, %al
 # CHECK-NEXT: 0.50   0.50   addb       $7, %dil
 # CHECK-NEXT: 1.00    -     addb       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               addb    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   addb       %sil, %dil
 # CHECK-NEXT: 1.00    -     addb       %sil, (%rax)
+# CHECK-NEXT: 1.00    -     lock               addb    %sil, (%rax)
 # CHECK-NEXT: 1.00    -     addb       (%rax), %dil
 # CHECK-NEXT: 0.50   0.50   addw       $511, %ax
 # CHECK-NEXT: 0.50   0.50   addw       $511, %di
 # CHECK-NEXT: 1.00    -     addw       $511, (%rax)
+# CHECK-NEXT: 1.00    -     lock               addw    $511, (%rax)
 # CHECK-NEXT: 0.50   0.50   addw       $7, %di
 # CHECK-NEXT: 1.00    -     addw       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               addw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   addw       %si, %di
 # CHECK-NEXT: 1.00    -     addw       %si, (%rax)
+# CHECK-NEXT: 1.00    -     lock               addw    %si, (%rax)
 # CHECK-NEXT: 1.00    -     addw       (%rax), %di
 # CHECK-NEXT: 0.50   0.50   addl       $665536, %eax
 # CHECK-NEXT: 0.50   0.50   addl       $665536, %edi
 # CHECK-NEXT: 1.00    -     addl       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               addl    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   addl       $7, %edi
 # CHECK-NEXT: 1.00    -     addl       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               addl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   addl       %esi, %edi
 # CHECK-NEXT: 1.00    -     addl       %esi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               addl    %esi, (%rax)
 # CHECK-NEXT: 1.00    -     addl       (%rax), %edi
 # CHECK-NEXT: 0.50   0.50   addq       $665536, %rax
 # CHECK-NEXT: 0.50   0.50   addq       $665536, %rdi
 # CHECK-NEXT: 1.00    -     addq       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               addq    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   addq       $7, %rdi
 # CHECK-NEXT: 1.00    -     addq       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               addq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   addq       %rsi, %rdi
 # CHECK-NEXT: 1.00    -     addq       %rsi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               addq    %rsi, (%rax)
 # CHECK-NEXT: 1.00    -     addq       (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   andb       $7, %al
 # CHECK-NEXT: 0.50   0.50   andb       $7, %dil
 # CHECK-NEXT: 1.00    -     andb       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               andb    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   andb       %sil, %dil
 # CHECK-NEXT: 1.00    -     andb       %sil, (%rax)
+# CHECK-NEXT: 1.00    -     lock               andb    %sil, (%rax)
 # CHECK-NEXT: 1.00    -     andb       (%rax), %dil
 # CHECK-NEXT: 0.50   0.50   andw       $511, %ax
 # CHECK-NEXT: 0.50   0.50   andw       $511, %di
 # CHECK-NEXT: 1.00    -     andw       $511, (%rax)
+# CHECK-NEXT: 1.00    -     lock               andw    $511, (%rax)
 # CHECK-NEXT: 0.50   0.50   andw       $7, %di
 # CHECK-NEXT: 1.00    -     andw       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               andw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   andw       %si, %di
 # CHECK-NEXT: 1.00    -     andw       %si, (%rax)
+# CHECK-NEXT: 1.00    -     lock               andw    %si, (%rax)
 # CHECK-NEXT: 1.00    -     andw       (%rax), %di
 # CHECK-NEXT: 0.50   0.50   andl       $665536, %eax
 # CHECK-NEXT: 0.50   0.50   andl       $665536, %edi
 # CHECK-NEXT: 1.00    -     andl       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               andl    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   andl       $7, %edi
 # CHECK-NEXT: 1.00    -     andl       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               andl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   andl       %esi, %edi
 # CHECK-NEXT: 1.00    -     andl       %esi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               andl    %esi, (%rax)
 # CHECK-NEXT: 1.00    -     andl       (%rax), %edi
 # CHECK-NEXT: 0.50   0.50   andq       $665536, %rax
 # CHECK-NEXT: 0.50   0.50   andq       $665536, %rdi
 # CHECK-NEXT: 1.00    -     andq       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               andq    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   andq       $7, %rdi
 # CHECK-NEXT: 1.00    -     andq       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               andq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   andq       %rsi, %rdi
 # CHECK-NEXT: 1.00    -     andq       %rsi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               andq    %rsi, (%rax)
 # CHECK-NEXT: 1.00    -     andq       (%rax), %rdi
 # CHECK-NEXT: 8.00   8.00   bsfw       %si, %di
 # CHECK-NEXT: 8.00   8.00   bsrw       %si, %di
@@ -1821,6 +2112,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 5.50   5.50   btcw       %si, (%rax)
 # CHECK-NEXT: 5.50   5.50   btrw       %si, (%rax)
 # CHECK-NEXT: 5.50   5.50   btsw       %si, (%rax)
+# CHECK-NEXT: 5.50   5.50   lock               btcw    %si, (%rax)
+# CHECK-NEXT: 5.50   5.50   lock               btrw    %si, (%rax)
+# CHECK-NEXT: 5.50   5.50   lock               btsw    %si, (%rax)
 # CHECK-NEXT:  -     1.00   btw        $7, %di
 # CHECK-NEXT:  -     1.00   btcw       $7, %di
 # CHECK-NEXT:  -     1.00   btrw       $7, %di
@@ -1829,6 +2123,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 1.00   1.00   btcw       $7, (%rax)
 # CHECK-NEXT: 1.00   1.00   btrw       $7, (%rax)
 # CHECK-NEXT: 1.00   1.00   btsw       $7, (%rax)
+# CHECK-NEXT: 1.00   1.00   lock               btcw    $7, (%rax)
+# CHECK-NEXT: 1.00   1.00   lock               btrw    $7, (%rax)
+# CHECK-NEXT: 1.00   1.00   lock               btsw    $7, (%rax)
 # CHECK-NEXT:  -     1.00   btl        %esi, %edi
 # CHECK-NEXT:  -     1.00   btcl       %esi, %edi
 # CHECK-NEXT:  -     1.00   btrl       %esi, %edi
@@ -1837,6 +2134,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 5.50   5.50   btcl       %esi, (%rax)
 # CHECK-NEXT: 5.50   5.50   btrl       %esi, (%rax)
 # CHECK-NEXT: 5.50   5.50   btsl       %esi, (%rax)
+# CHECK-NEXT: 5.50   5.50   lock               btcl    %esi, (%rax)
+# CHECK-NEXT: 5.50   5.50   lock               btrl    %esi, (%rax)
+# CHECK-NEXT: 5.50   5.50   lock               btsl    %esi, (%rax)
 # CHECK-NEXT:  -     1.00   btl        $7, %edi
 # CHECK-NEXT:  -     1.00   btcl       $7, %edi
 # CHECK-NEXT:  -     1.00   btrl       $7, %edi
@@ -1845,6 +2145,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 1.00   1.00   btcl       $7, (%rax)
 # CHECK-NEXT: 1.00   1.00   btrl       $7, (%rax)
 # CHECK-NEXT: 1.00   1.00   btsl       $7, (%rax)
+# CHECK-NEXT: 1.00   1.00   lock               btcl    $7, (%rax)
+# CHECK-NEXT: 1.00   1.00   lock               btrl    $7, (%rax)
+# CHECK-NEXT: 1.00   1.00   lock               btsl    $7, (%rax)
 # CHECK-NEXT:  -     1.00   btq        %rsi, %rdi
 # CHECK-NEXT:  -     1.00   btcq       %rsi, %rdi
 # CHECK-NEXT:  -     1.00   btrq       %rsi, %rdi
@@ -1853,6 +2156,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 5.50   5.50   btcq       %rsi, (%rax)
 # CHECK-NEXT: 5.50   5.50   btrq       %rsi, (%rax)
 # CHECK-NEXT: 5.50   5.50   btsq       %rsi, (%rax)
+# CHECK-NEXT: 5.50   5.50   lock               btcq    %rsi, (%rax)
+# CHECK-NEXT: 5.50   5.50   lock               btrq    %rsi, (%rax)
+# CHECK-NEXT: 5.50   5.50   lock               btsq    %rsi, (%rax)
 # CHECK-NEXT:  -     1.00   btq        $7, %rdi
 # CHECK-NEXT:  -     1.00   btcq       $7, %rdi
 # CHECK-NEXT:  -     1.00   btrq       $7, %rdi
@@ -1861,6 +2167,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 1.00   1.00   btcq       $7, (%rax)
 # CHECK-NEXT: 1.00   1.00   btrq       $7, (%rax)
 # CHECK-NEXT: 1.00   1.00   btsq       $7, (%rax)
+# CHECK-NEXT: 1.00   1.00   lock               btcq    $7, (%rax)
+# CHECK-NEXT: 1.00   1.00   lock               btrq    $7, (%rax)
+# CHECK-NEXT: 1.00   1.00   lock               btsq    $7, (%rax)
 # CHECK-NEXT: 2.00   2.00   cbtw
 # CHECK-NEXT: 2.00   2.00   cwtl
 # CHECK-NEXT: 2.00   2.00   cltq
@@ -1919,12 +2228,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 60.50  60.50  cpuid
 # CHECK-NEXT: 0.50   0.50   decb       %dil
 # CHECK-NEXT: 1.00    -     decb       (%rax)
+# CHECK-NEXT: 1.00    -     lock               decb    (%rax)
 # CHECK-NEXT: 0.50   0.50   decw       %di
 # CHECK-NEXT: 1.00    -     decw       (%rax)
+# CHECK-NEXT: 1.00    -     lock               decw    (%rax)
 # CHECK-NEXT: 0.50   0.50   decl       %edi
 # CHECK-NEXT: 1.00    -     decl       (%rax)
+# CHECK-NEXT: 1.00    -     lock               decl    (%rax)
 # CHECK-NEXT: 0.50   0.50   decq       %rdi
 # CHECK-NEXT: 1.00    -     decq       (%rax)
+# CHECK-NEXT: 1.00    -     lock               decq    (%rax)
 # CHECK-NEXT: 25.00  25.00  divb       %dil
 # CHECK-NEXT: 34.00  34.00  divb       (%rax)
 # CHECK-NEXT: 25.00  25.00  divw       %si
@@ -1976,12 +2289,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 47.00  47.00  inl        %dx, %eax
 # CHECK-NEXT: 0.50   0.50   incb       %dil
 # CHECK-NEXT: 1.00    -     incb       (%rax)
+# CHECK-NEXT: 1.00    -     lock               incb    (%rax)
 # CHECK-NEXT: 0.50   0.50   incw       %di
 # CHECK-NEXT: 1.00    -     incw       (%rax)
+# CHECK-NEXT: 1.00    -     lock               incw    (%rax)
 # CHECK-NEXT: 0.50   0.50   incl       %edi
 # CHECK-NEXT: 1.00    -     incl       (%rax)
+# CHECK-NEXT: 1.00    -     lock               incl    (%rax)
 # CHECK-NEXT: 0.50   0.50   incq       %rdi
 # CHECK-NEXT: 1.00    -     incq       (%rax)
+# CHECK-NEXT: 1.00    -     lock               incq    (%rax)
 # CHECK-NEXT: 29.50  29.50  insb       %dx, %es:(%rdi)
 # CHECK-NEXT: 29.50  29.50  insw       %dx, %es:(%rdi)
 # CHECK-NEXT: 29.50  29.50  insl       %dx, %es:(%rdi)
@@ -2030,12 +2347,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 6.00   6.00   mulq       (%rax)
 # CHECK-NEXT: 0.50   0.50   negb       %dil
 # CHECK-NEXT: 1.00    -     negb       (%r8)
+# CHECK-NEXT: 1.00    -     lock               negb    (%r8)
 # CHECK-NEXT: 0.50   0.50   negw       %si
 # CHECK-NEXT: 1.00    -     negw       (%r9)
+# CHECK-NEXT: 1.00    -     lock               negw    (%r9)
 # CHECK-NEXT: 0.50   0.50   negl       %edx
 # CHECK-NEXT: 1.00    -     negl       (%rax)
+# CHECK-NEXT: 1.00    -     lock               negl    (%rax)
 # CHECK-NEXT: 0.50   0.50   negq       %rcx
 # CHECK-NEXT: 1.00    -     negq       (%r10)
+# CHECK-NEXT: 1.00    -     lock               negq    (%r10)
 # CHECK-NEXT: 0.50   0.50   nop
 # CHECK-NEXT: 0.50   0.50   nopw       %di
 # CHECK-NEXT: 0.50   0.50   nopw       (%rcx)
@@ -2045,41 +2366,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   nopq       (%r9)
 # CHECK-NEXT: 0.50   0.50   notb       %dil
 # CHECK-NEXT: 1.00    -     notb       (%r8)
+# CHECK-NEXT: 1.00    -     lock               notb    (%r8)
 # CHECK-NEXT: 0.50   0.50   notw       %si
 # CHECK-NEXT: 1.00    -     notw       (%r9)
+# CHECK-NEXT: 1.00    -     lock               notw    (%r9)
 # CHECK-NEXT: 0.50   0.50   notl       %edx
 # CHECK-NEXT: 1.00    -     notl       (%rax)
+# CHECK-NEXT: 1.00    -     lock               notl    (%rax)
 # CHECK-NEXT: 0.50   0.50   notq       %rcx
 # CHECK-NEXT: 1.00    -     notq       (%r10)
+# CHECK-NEXT: 1.00    -     lock               notq    (%r10)
 # CHECK-NEXT: 0.50   0.50   orb        $7, %al
 # CHECK-NEXT: 0.50   0.50   orb        $7, %dil
 # CHECK-NEXT: 1.00    -     orb        $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               orb     $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   orb        %sil, %dil
 # CHECK-NEXT: 1.00    -     orb        %sil, (%rax)
+# CHECK-NEXT: 1.00    -     lock               orb     %sil, (%rax)
 # CHECK-NEXT: 1.00    -     orb        (%rax), %dil
 # CHECK-NEXT: 0.50   0.50   orw        $511, %ax
 # CHECK-NEXT: 0.50   0.50   orw        $511, %di
 # CHECK-NEXT: 1.00    -     orw        $511, (%rax)
+# CHECK-NEXT: 1.00    -     lock               orw     $511, (%rax)
 # CHECK-NEXT: 0.50   0.50   orw        $7, %di
 # CHECK-NEXT: 1.00    -     orw        $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               orw     $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   orw        %si, %di
 # CHECK-NEXT: 1.00    -     orw        %si, (%rax)
+# CHECK-NEXT: 1.00    -     lock               orw     %si, (%rax)
 # CHECK-NEXT: 1.00    -     orw        (%rax), %di
 # CHECK-NEXT: 0.50   0.50   orl        $665536, %eax
 # CHECK-NEXT: 0.50   0.50   orl        $665536, %edi
 # CHECK-NEXT: 1.00    -     orl        $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               orl     $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   orl        $7, %edi
 # CHECK-NEXT: 1.00    -     orl        $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               orl     $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   orl        %esi, %edi
 # CHECK-NEXT: 1.00    -     orl        %esi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               orl     %esi, (%rax)
 # CHECK-NEXT: 1.00    -     orl        (%rax), %edi
 # CHECK-NEXT: 0.50   0.50   orq        $665536, %rax
 # CHECK-NEXT: 0.50   0.50   orq        $665536, %rdi
 # CHECK-NEXT: 1.00    -     orq        $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               orq     $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   orq        $7, %rdi
 # CHECK-NEXT: 1.00    -     orq        $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               orq     $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   orq        %rsi, %rdi
 # CHECK-NEXT: 1.00    -     orq        %rsi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               orq     %rsi, (%rax)
 # CHECK-NEXT: 1.00    -     orq        (%rax), %rdi
 # CHECK-NEXT: 36.00  36.00  outb       %al, $7
 # CHECK-NEXT: 34.00  34.00  outb       %al, %dx
@@ -2267,44 +2603,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   sbbb       $0, %al
 # CHECK-NEXT: 0.50   0.50   sbbb       $0, %dil
 # CHECK-NEXT: 1.00    -     sbbb       $0, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbb    $0, (%rax)
 # CHECK-NEXT: 0.50   0.50   sbbb       $7, %al
 # CHECK-NEXT: 0.50   0.50   sbbb       $7, %dil
 # CHECK-NEXT: 1.00    -     sbbb       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbb    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   sbbb       %sil, %dil
 # CHECK-NEXT: 1.00    -     sbbb       %sil, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbb    %sil, (%rax)
 # CHECK-NEXT: 1.00    -     sbbb       (%rax), %dil
 # CHECK-NEXT: 0.50   0.50   sbbw       $0, %ax
 # CHECK-NEXT: 0.50   0.50   sbbw       $0, %di
 # CHECK-NEXT: 1.00    -     sbbw       $0, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbw    $0, (%rax)
 # CHECK-NEXT: 0.50   0.50   sbbw       $511, %ax
 # CHECK-NEXT: 0.50   0.50   sbbw       $511, %di
 # CHECK-NEXT: 1.00    -     sbbw       $511, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbw    $511, (%rax)
 # CHECK-NEXT: 0.50   0.50   sbbw       $7, %di
 # CHECK-NEXT: 1.00    -     sbbw       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   sbbw       %si, %di
 # CHECK-NEXT: 1.00    -     sbbw       %si, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbw    %si, (%rax)
 # CHECK-NEXT: 1.00    -     sbbw       (%rax), %di
 # CHECK-NEXT: 0.50   0.50   sbbl       $0, %eax
 # CHECK-NEXT: 0.50   0.50   sbbl       $0, %edi
 # CHECK-NEXT: 1.00    -     sbbl       $0, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbl    $0, (%rax)
 # CHECK-NEXT: 0.50   0.50   sbbl       $665536, %eax
 # CHECK-NEXT: 0.50   0.50   sbbl       $665536, %edi
 # CHECK-NEXT: 1.00    -     sbbl       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbl    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   sbbl       $7, %edi
 # CHECK-NEXT: 1.00    -     sbbl       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   sbbl       %esi, %edi
 # CHECK-NEXT: 1.00    -     sbbl       %esi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbl    %esi, (%rax)
 # CHECK-NEXT: 1.00    -     sbbl       (%rax), %edi
 # CHECK-NEXT: 0.50   0.50   sbbq       $0, %rax
 # CHECK-NEXT: 0.50   0.50   sbbq       $0, %rdi
 # CHECK-NEXT: 1.00    -     sbbq       $0, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbq    $0, (%rax)
 # CHECK-NEXT: 0.50   0.50   sbbq       $665536, %rax
 # CHECK-NEXT: 0.50   0.50   sbbq       $665536, %rdi
 # CHECK-NEXT: 1.00    -     sbbq       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbq    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   sbbq       $7, %rdi
 # CHECK-NEXT: 1.00    -     sbbq       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   sbbq       %rsi, %rdi
 # CHECK-NEXT: 1.00    -     sbbq       %rsi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               sbbq    %rsi, (%rax)
 # CHECK-NEXT: 1.00    -     sbbq       (%rax), %rdi
 # CHECK-NEXT: 1.00   1.00   scasb      %es:(%rdi), %al
 # CHECK-NEXT: 1.00   1.00   scasw      %es:(%rdi), %ax
@@ -2375,32 +2726,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   subb       $7, %al
 # CHECK-NEXT: 0.50   0.50   subb       $7, %dil
 # CHECK-NEXT: 1.00    -     subb       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               subb    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   subb       %sil, %dil
 # CHECK-NEXT: 1.00    -     subb       %sil, (%rax)
+# CHECK-NEXT: 1.00    -     lock               subb    %sil, (%rax)
 # CHECK-NEXT: 1.00    -     subb       (%rax), %dil
 # CHECK-NEXT: 0.50   0.50   subw       $511, %ax
 # CHECK-NEXT: 0.50   0.50   subw       $511, %di
 # CHECK-NEXT: 1.00    -     subw       $511, (%rax)
+# CHECK-NEXT: 1.00    -     lock               subw    $511, (%rax)
 # CHECK-NEXT: 0.50   0.50   subw       $7, %di
 # CHECK-NEXT: 1.00    -     subw       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               subw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   subw       %si, %di
 # CHECK-NEXT: 1.00    -     subw       %si, (%rax)
+# CHECK-NEXT: 1.00    -     lock               subw    %si, (%rax)
 # CHECK-NEXT: 1.00    -     subw       (%rax), %di
 # CHECK-NEXT: 0.50   0.50   subl       $665536, %eax
 # CHECK-NEXT: 0.50   0.50   subl       $665536, %edi
 # CHECK-NEXT: 1.00    -     subl       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               subl    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   subl       $7, %edi
 # CHECK-NEXT: 1.00    -     subl       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               subl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   subl       %esi, %edi
 # CHECK-NEXT: 1.00    -     subl       %esi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               subl    %esi, (%rax)
 # CHECK-NEXT: 1.00    -     subl       (%rax), %edi
 # CHECK-NEXT: 0.50   0.50   subq       $665536, %rax
 # CHECK-NEXT: 0.50   0.50   subq       $665536, %rdi
 # CHECK-NEXT: 1.00    -     subq       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               subq    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   subq       $7, %rdi
 # CHECK-NEXT: 1.00    -     subq       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               subq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   subq       %rsi, %rdi
 # CHECK-NEXT: 1.00    -     subq       %rsi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               subq    %rsi, (%rax)
 # CHECK-NEXT: 1.00    -     subq       (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   testb      $7, %al
 # CHECK-NEXT: 0.50   0.50   testb      $7, %dil
@@ -2432,51 +2794,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 101.00 101.00 wrmsr
 # CHECK-NEXT: 1.00   1.00   xaddb      %bl, %cl
 # CHECK-NEXT: 1.50   1.50   xaddb      %bl, (%rcx)
+# CHECK-NEXT: 1.50   1.50   lock               xaddb   %bl, (%rcx)
 # CHECK-NEXT: 1.00   1.00   xaddw      %bx, %cx
 # CHECK-NEXT: 1.50   1.50   xaddw      %ax, (%rbx)
+# CHECK-NEXT: 1.50   1.50   lock               xaddw   %ax, (%rbx)
 # CHECK-NEXT: 1.00   1.00   xaddl      %ebx, %ecx
 # CHECK-NEXT: 1.50   1.50   xaddl      %eax, (%rbx)
+# CHECK-NEXT: 1.50   1.50   lock               xaddl   %eax, (%rbx)
 # CHECK-NEXT: 1.00   1.00   xaddq      %rbx, %rcx
 # CHECK-NEXT: 1.50   1.50   xaddq      %rax, (%rbx)
+# CHECK-NEXT: 1.50   1.50   lock               xaddq   %rax, (%rbx)
 # CHECK-NEXT: 1.00   1.00   xchgb      %bl, %cl
 # CHECK-NEXT: 1.50   1.50   xchgb      %bl, (%rbx)
+# CHECK-NEXT: 1.50   1.50   lock               xchgb   %bl, (%rbx)
 # CHECK-NEXT: 1.00   1.00   xchgw      %bx, %ax
 # CHECK-NEXT: 1.00   1.00   xchgw      %bx, %cx
 # CHECK-NEXT: 1.50   1.50   xchgw      %ax, (%rbx)
+# CHECK-NEXT: 1.50   1.50   lock               xchgw   %ax, (%rbx)
 # CHECK-NEXT: 1.00   1.00   xchgl      %ebx, %eax
 # CHECK-NEXT: 1.00   1.00   xchgl      %ebx, %ecx
 # CHECK-NEXT: 1.50   1.50   xchgl      %eax, (%rbx)
+# CHECK-NEXT: 1.50   1.50   lock               xchgl   %eax, (%rbx)
 # CHECK-NEXT: 1.00   1.00   xchgq      %rbx, %rax
 # CHECK-NEXT: 1.00   1.00   xchgq      %rbx, %rcx
 # CHECK-NEXT: 1.50   1.50   xchgq      %rax, (%rbx)
+# CHECK-NEXT: 1.50   1.50   lock               xchgq   %rax, (%rbx)
 # CHECK-NEXT: 3.00   3.00   xlatb
 # CHECK-NEXT: 0.50   0.50   xorb       $7, %al
 # CHECK-NEXT: 0.50   0.50   xorb       $7, %dil
 # CHECK-NEXT: 1.00    -     xorb       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               xorb    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   xorb       %sil, %dil
 # CHECK-NEXT: 1.00    -     xorb       %sil, (%rax)
+# CHECK-NEXT: 1.00    -     lock               xorb    %sil, (%rax)
 # CHECK-NEXT: 1.00    -     xorb       (%rax), %dil
 # CHECK-NEXT: 0.50   0.50   xorw       $511, %ax
 # CHECK-NEXT: 0.50   0.50   xorw       $511, %di
 # CHECK-NEXT: 1.00    -     xorw       $511, (%rax)
+# CHECK-NEXT: 1.00    -     lock               xorw    $511, (%rax)
 # CHECK-NEXT: 0.50   0.50   xorw       $7, %di
 # CHECK-NEXT: 1.00    -     xorw       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               xorw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   xorw       %si, %di
 # CHECK-NEXT: 1.00    -     xorw       %si, (%rax)
+# CHECK-NEXT: 1.00    -     lock               xorw    %si, (%rax)
 # CHECK-NEXT: 1.00    -     xorw       (%rax), %di
 # CHECK-NEXT: 0.50   0.50   xorl       $665536, %eax
 # CHECK-NEXT: 0.50   0.50   xorl       $665536, %edi
 # CHECK-NEXT: 1.00    -     xorl       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               xorl    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   xorl       $7, %edi
 # CHECK-NEXT: 1.00    -     xorl       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               xorl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   xorl       %esi, %edi
 # CHECK-NEXT: 1.00    -     xorl       %esi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               xorl    %esi, (%rax)
 # CHECK-NEXT: 1.00    -     xorl       (%rax), %edi
 # CHECK-NEXT: 0.50   0.50   xorq       $665536, %rax
 # CHECK-NEXT: 0.50   0.50   xorq       $665536, %rdi
 # CHECK-NEXT: 1.00    -     xorq       $665536, (%rax)
+# CHECK-NEXT: 1.00    -     lock               xorq    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50   xorq       $7, %rdi
 # CHECK-NEXT: 1.00    -     xorq       $7, (%rax)
+# CHECK-NEXT: 1.00    -     lock               xorq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   xorq       %rsi, %rdi
 # CHECK-NEXT: 1.00    -     xorq       %rsi, (%rax)
+# CHECK-NEXT: 1.00    -     lock               xorq    %rsi, (%rax)
 # CHECK-NEXT: 1.00    -     xorq       (%rax), %rdi
index 8bf04e2b3cd28d384bf94b889595fd87133b86e6..19894f326b5eb90dce332040f4ec5776d2ce8243 100644 (file)
 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,30 +291,34 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
-lock cmpxchgb  %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
-lock cmpxchgw  %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
-lock cmpxchgl  %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
-lock 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.67                        adcb   $0, %al
 # CHECK-NEXT:  2      2     0.67                        adcb   $0, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcb   $7, %al
 # CHECK-NEXT:  2      2     0.67                        adcb   $7, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcb   %sil, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcb   (%rax), %dil
 # CHECK-NEXT:  2      2     0.67                        adcw   $0, %ax
 # CHECK-NEXT:  2      2     0.67                        adcw   $0, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcw   $511, %ax
 # CHECK-NEXT:  2      2     0.67                        adcw   $511, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcw   $7, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcw   %si, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcw   (%rax), %di
 # CHECK-NEXT:  2      2     0.67                        adcl   $0, %eax
 # CHECK-NEXT:  2      2     0.67                        adcl   $0, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcl   $665536, %eax
 # CHECK-NEXT:  2      2     0.67                        adcl   $665536, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcl   $7, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcl   %esi, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcl   (%rax), %edi
 # CHECK-NEXT:  2      2     0.67                        adcq   $0, %rax
 # CHECK-NEXT:  2      2     0.67                        adcq   $0, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcq   $665536, %rax
 # CHECK-NEXT:  2      2     0.67                        adcq   $665536, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcq   $7, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcq   %rsi, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        addb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        addb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        addw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        addw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        addl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        addl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        addq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        addq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        andb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        andb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        andw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        andw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        andl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        andl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        andq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        andq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  1      3     1.00                        bsfw   %si, %di
 # CHECK-NEXT:  1      3     1.00                        bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btsw    %si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw    $7, %di
 # CHECK-NEXT:  1      1     0.50                        btcw   $7, %di
 # CHECK-NEXT:  1      1     0.50                        btrw   $7, %di
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btsw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   %esi, %edi
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btsl    %esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   $7, %edi
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btsl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   %rsi, %rdi
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btsq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   $7, %rdi
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btsq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        cbtw
 # CHECK-NEXT:  1      1     0.33                        cwtl
 # CHECK-NEXT:  1      1     0.33                        cltq
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     cpuid
 # CHECK-NEXT:  1      1     0.33                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     0.33                        decw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            decw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     0.33                        decl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            decl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        decq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            decq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decq    (%rax)
 # CHECK-NEXT:  1      25    10.00                 U     divb   %dil
 # CHECK-NEXT:  2      30    10.00   *             U     divb   (%rax)
 # CHECK-NEXT:  1      25    10.00                 U     divw   %si
@@ -1182,12 +1368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     inl    %dx, %eax
 # CHECK-NEXT:  1      1     0.33                        incb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            incb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     0.33                        incw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            incw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     0.33                        incl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            incl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        incq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            incq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incq    (%rax)
 # CHECK-NEXT:  1      100   0.33                  U     insb   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.33                  U     insw   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.33                  U     insl   %dx, %es:(%rdi)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      9     1.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     0.33                        negb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            negb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     0.33                        negw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            negw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     0.33                        negl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            negl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        negq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            negq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            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)
@@ -1251,41 +1445,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        nopq   (%r9)
 # CHECK-NEXT:  1      1     0.33                        notb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            notb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     0.33                        notw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            notw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     0.33                        notl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            notl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        notq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            notq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notq    (%r10)
 # CHECK-NEXT:  1      1     0.33                        orb    $7, %al
 # CHECK-NEXT:  1      1     0.33                        orb    $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orb    %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orb    (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        orw    $511, %ax
 # CHECK-NEXT:  1      1     0.33                        orw    $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orw    $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orw    %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orw    (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        orl    $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        orl    $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orl    $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orl    %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orl    (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        orq    $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        orq    $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orq    $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orq    %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     outb   %al, $7
 # CHECK-NEXT:  1      100   0.33                  U     outb   %al, %dx
@@ -1473,44 +1682,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.67                        sbbb   $0, %al
 # CHECK-NEXT:  2      2     0.67                        sbbb   $0, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbb   $7, %al
 # CHECK-NEXT:  2      2     0.67                        sbbb   $7, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbb   %sil, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbb   (%rax), %dil
 # CHECK-NEXT:  2      2     0.67                        sbbw   $0, %ax
 # CHECK-NEXT:  2      2     0.67                        sbbw   $0, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbw   $511, %ax
 # CHECK-NEXT:  2      2     0.67                        sbbw   $511, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbw   $7, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbw   %si, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbw   (%rax), %di
 # CHECK-NEXT:  2      2     0.67                        sbbl   $0, %eax
 # CHECK-NEXT:  2      2     0.67                        sbbl   $0, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbl   $665536, %eax
 # CHECK-NEXT:  2      2     0.67                        sbbl   $665536, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbl   $7, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbl   %esi, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbl   (%rax), %edi
 # CHECK-NEXT:  2      2     0.67                        sbbq   $0, %rax
 # CHECK-NEXT:  2      2     0.67                        sbbq   $0, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbq   $665536, %rax
 # CHECK-NEXT:  2      2     0.67                        sbbq   $665536, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbq   $7, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  2      2     0.67                  U     scasb  %es:(%rdi), %al
 # CHECK-NEXT:  2      2     0.67                  U     scasw  %es:(%rdi), %ax
@@ -1581,32 +1805,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        subb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        subb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        subw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        subw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        subl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        subl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        subq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        subq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        testb  $7, %al
 # CHECK-NEXT:  1      1     0.33                        testb  $7, %dil
@@ -1638,53 +1873,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     wrmsr
 # CHECK-NEXT:  3      2     1.00                        xaddb  %bl, %cl
 # CHECK-NEXT:  5      8     1.00    *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT:  3      2     1.00                        xaddw  %bx, %cx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xaddl  %ebx, %ecx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xaddq  %rbx, %rcx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgb  %bl, %cl
 # CHECK-NEXT:  3      6     1.00    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgw  %bx, %ax
 # CHECK-NEXT:  3      2     1.00                        xchgw  %bx, %cx
 # CHECK-NEXT:  3      6     1.00    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgl  %ebx, %eax
 # CHECK-NEXT:  3      2     1.00                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  3      6     1.00    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgq  %rbx, %rax
 # CHECK-NEXT:  3      2     1.00                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  3      6     1.00    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  1      5     0.50    *                   xlatb
 # CHECK-NEXT:  1      1     0.33                        xorb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        xorb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        xorw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        xorw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        xorl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        xorl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        xorq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        xorq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1699,111 +1953,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT: 160.00  -     597.83 239.33 234.00 605.83 328.50 328.50
+# CHECK-NEXT: 160.00  -     670.17 294.67 361.00 687.17 455.50 455.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $0, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $0, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcb     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $7, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $7, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcb     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     %sil, %dil
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcb     %sil, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $0, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $0, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcw     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $511, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $511, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcw     $511, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $7, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcw     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     %si, %di
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcw     %si, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcw     (%rax), %di
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $0, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $0, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcl     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $665536, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $665536, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcl     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $7, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcl     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     %esi, %edi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcl     %esi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $0, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $0, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcq     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $665536, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $665536, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcq     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $7, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcq     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     %rsi, %rdi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andq     (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     bsfw     %si, %di
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     bsrw     %si, %di
@@ -1827,6 +2118,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btcw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btrw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btsw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btcw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btrw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btsw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btw      $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcw     $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrw     $7, %di
@@ -1835,6 +2129,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btcw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btrw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btsw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btcw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btrw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btsw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btl      %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcl     %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrl     %esi, %edi
@@ -1843,6 +2140,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btcl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btrl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btsl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btcl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btrl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btsl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btl      $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcl     $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrl     $7, %edi
@@ -1851,6 +2151,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btcl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btrl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btsl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btcl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btrl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btsl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btq      %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrq     %rsi, %rdi
@@ -1859,6 +2162,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btcq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btrq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btsq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btcq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btrq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btsq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btq      $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcq     $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrq     $7, %rdi
@@ -1867,6 +2173,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btcq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btrq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btsq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btcq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btrq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btsq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cbtw
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cwtl
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cltq
@@ -1925,12 +2234,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cpuid
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decb     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decb    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decw     %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decw     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decw    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decl     %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decq     %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decq     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decq    (%rax)
 # CHECK-NEXT: 10.00   -     1.00    -      -      -      -      -     divb     %dil
 # CHECK-NEXT: 10.00   -     1.00    -      -      -     0.50   0.50   divb     (%rax)
 # CHECK-NEXT: 10.00   -     1.00    -      -      -      -      -     divw     %si
@@ -1982,12 +2295,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     inl      %dx, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incb     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incb    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incw     %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incw     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incw    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incl     %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incq     %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incq     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incq    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insb     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insw     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insl     %dx, %es:(%rdi)
@@ -2036,12 +2353,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   mulq     (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negb     (%r8)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negb    (%r8)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negw     %si
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negw     (%r9)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negw    (%r9)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negl     %edx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negq     %rcx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negq     (%r10)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopw     %di
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopw     (%rcx)
@@ -2051,41 +2372,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopq     (%r9)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notb     (%r8)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notb    (%r8)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notw     %si
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notw     (%r9)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notw    (%r9)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notl     %edx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notq     %rcx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notq     (%r10)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notq    (%r10)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orb      $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orb      $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orb      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orb     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orb      %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orb      %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orb     %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orb      (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orw      $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orw     $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orw      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orw      %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orw      (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orl      $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orl     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orl      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orl      %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orl      (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orq      $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orq     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orq      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orq      %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orq      (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     outb     %al, $7
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     outb     %al, %dx
@@ -2273,44 +2609,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $0, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $0, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbb     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $7, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $7, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbb     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     %sil, %dil
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbb     %sil, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $0, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $0, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbw     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $511, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $511, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbw     $511, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $7, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbw     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     %si, %di
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbw     %si, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbw     (%rax), %di
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $0, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $0, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbl     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $665536, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $665536, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbl     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $7, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbl     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     %esi, %edi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbl     %esi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $0, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $0, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbq     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $665536, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $665536, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbq     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $7, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbq     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     %rsi, %rdi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67    -      -     scasb    %es:(%rdi), %al
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67    -      -     scasw    %es:(%rdi), %ax
@@ -2381,32 +2732,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     testb    $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     testb    $7, %dil
@@ -2438,51 +2800,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     wrmsr
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddb    %bl, %cl
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddb    %bl, (%rcx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddb   %bl, (%rcx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddw    %bx, %cx
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddw    %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddl    %ebx, %ecx
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddl    %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddq    %rbx, %rcx
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddq    %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddq   %rax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgb    %bl, %cl
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgb    %bl, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgb   %bl, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgw    %bx, %ax
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgw    %bx, %cx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgw    %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgl    %ebx, %eax
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgl    %ebx, %ecx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgl    %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgq    %rbx, %rax
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgq    %rbx, %rcx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgq    %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgq   %rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   xlatb
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorq     (%rax), %rdi
index d3c1d9af55b698871a94f96dfa486439bbd35f12..3b4c94a94855d69eec3037a0b9e9b4206d3a880e 100644 (file)
 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
@@ -254,12 +309,16 @@ 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        adcb   $0, %al
 # CHECK-NEXT:  1      1     1.00                        adcb   $0, %dil
 # CHECK-NEXT:  2      6     2.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  2      6     2.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:  2      6     2.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcb   %sil, %dil
 # CHECK-NEXT:  2      6     2.00    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   adcb   (%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        adcw   $0, %ax
 # CHECK-NEXT:  1      1     1.00                        adcw   $0, %di
 # CHECK-NEXT:  2      6     2.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  2      6     2.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:  2      6     2.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcw   $7, %di
 # CHECK-NEXT:  2      6     2.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcw   %si, %di
 # CHECK-NEXT:  2      6     2.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   adcw   (%rax), %di
 # CHECK-NEXT:  1      1     1.00                        adcl   $0, %eax
 # CHECK-NEXT:  1      1     1.00                        adcl   $0, %edi
 # CHECK-NEXT:  2      6     2.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  2      6     2.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:  2      6     2.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcl   $7, %edi
 # CHECK-NEXT:  2      6     2.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcl   %esi, %edi
 # CHECK-NEXT:  2      6     2.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   adcl   (%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        adcq   $0, %rax
 # CHECK-NEXT:  1      1     1.00                        adcq   $0, %rdi
 # CHECK-NEXT:  2      6     2.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcq    $0, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcq   $665536, %rax
 # CHECK-NEXT:  1      1     1.50                        adcq   $665536, %rdi
 # CHECK-NEXT:  2      6     2.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcq   $7, %rdi
 # CHECK-NEXT:  2      6     2.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcq   %rsi, %rdi
 # CHECK-NEXT:  2      6     2.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        addb   $7, %al
 # CHECK-NEXT:  1      1     1.00                        addb   $7, %dil
 # CHECK-NEXT:  1      6     2.00    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        addb   %sil, %dil
 # CHECK-NEXT:  1      6     2.00    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   addb   (%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        addw   $511, %ax
 # CHECK-NEXT:  1      1     1.00                        addw   $511, %di
 # CHECK-NEXT:  1      6     2.00    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     1.00                        addw   $7, %di
 # CHECK-NEXT:  1      6     2.00    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        addw   %si, %di
 # CHECK-NEXT:  1      6     2.00    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   addw   (%rax), %di
 # CHECK-NEXT:  1      1     1.00                        addl   $665536, %eax
 # CHECK-NEXT:  1      1     1.00                        addl   $665536, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        addl   $7, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        addl   %esi, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   addl   (%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        addq   $665536, %rax
 # CHECK-NEXT:  1      1     1.00                        addq   $665536, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        addq   $7, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        addq   %rsi, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   addq   (%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        andb   $7, %al
 # CHECK-NEXT:  1      1     1.00                        andb   $7, %dil
 # CHECK-NEXT:  1      6     2.00    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        andb   %sil, %dil
 # CHECK-NEXT:  1      6     2.00    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   andb   (%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        andw   $511, %ax
 # CHECK-NEXT:  1      1     1.00                        andw   $511, %di
 # CHECK-NEXT:  1      6     2.00    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     1.00                        andw   $7, %di
 # CHECK-NEXT:  1      6     2.00    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        andw   %si, %di
 # CHECK-NEXT:  1      6     2.00    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   andw   (%rax), %di
 # CHECK-NEXT:  1      1     1.00                        andl   $665536, %eax
 # CHECK-NEXT:  1      1     1.00                        andl   $665536, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        andl   $7, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        andl   %esi, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   andl   (%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        andq   $665536, %rax
 # CHECK-NEXT:  1      1     1.00                        andq   $665536, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        andq   $7, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        andq   %rsi, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  6      3     3.00                        bsfw   %si, %di
 # CHECK-NEXT:  7      4     4.00                        bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  10     7     22.00   *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  10     7     22.00   *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  10     7     22.00   *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  10     7     22.00   *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  10     7     22.00   *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  10     7     22.00   *      *            lock           btsw    %si, (%rax)
 # CHECK-NEXT:  1      1     1.00                        btw    $7, %di
 # CHECK-NEXT:  2      2     1.00                        btcw   $7, %di
 # CHECK-NEXT:  2      2     1.00                        btrw   $7, %di
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     21.00   *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  4      7     21.00   *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  4      7     21.00   *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  4      7     21.00   *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  4      7     21.00   *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  4      7     21.00   *      *            lock           btsw    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        btl    %esi, %edi
 # CHECK-NEXT:  2      2     1.00                        btcl   %esi, %edi
 # CHECK-NEXT:  2      2     1.00                        btrl   %esi, %edi
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  10     7     22.00   *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  10     7     22.00   *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  10     7     22.00   *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  10     7     22.00   *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  10     7     22.00   *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  10     7     22.00   *      *            lock           btsl    %esi, (%rax)
 # CHECK-NEXT:  1      1     1.00                        btl    $7, %edi
 # CHECK-NEXT:  2      2     1.00                        btcl   $7, %edi
 # CHECK-NEXT:  2      2     1.00                        btrl   $7, %edi
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     21.00   *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  4      7     21.00   *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  4      7     21.00   *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  4      7     21.00   *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  4      7     21.00   *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  4      7     21.00   *      *            lock           btsl    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        btq    %rsi, %rdi
 # CHECK-NEXT:  2      2     1.00                        btcq   %rsi, %rdi
 # CHECK-NEXT:  2      2     1.00                        btrq   %rsi, %rdi
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  10     7     22.00   *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  10     7     22.00   *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  10     7     22.00   *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  10     7     22.00   *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  10     7     22.00   *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  10     7     22.00   *      *            lock           btsq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     1.00                        btq    $7, %rdi
 # CHECK-NEXT:  2      2     1.00                        btcq   $7, %rdi
 # CHECK-NEXT:  2      2     1.00                        btrq   $7, %rdi
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     21.00   *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  4      7     21.00   *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  4      7     21.00   *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  4      7     21.00   *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  4      7     21.00   *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  4      7     21.00   *      *            lock           btsq    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        cbtw
 # CHECK-NEXT:  1      1     1.00                        cwtl
 # CHECK-NEXT:  1      1     1.00                        cltq
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     cpuid
 # CHECK-NEXT:  1      1     1.00                        decb   %dil
 # CHECK-NEXT:  1      6     2.00    *      *            decb   (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     1.00                        decw   %di
 # CHECK-NEXT:  1      6     2.00    *      *            decw   (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     1.00                        decl   %edi
 # CHECK-NEXT:  1      6     2.00    *      *            decl   (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     1.00                        decq   %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            decq   (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           decq    (%rax)
 # CHECK-NEXT:  1      12    12.00                 U     divb   %dil
 # CHECK-NEXT:  1      16    12.00   *             U     divb   (%rax)
 # CHECK-NEXT:  2      15    15.00                 U     divw   %si
@@ -1182,12 +1368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     inl    %dx, %eax
 # CHECK-NEXT:  1      1     1.00                        incb   %dil
 # CHECK-NEXT:  1      6     2.00    *      *            incb   (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     1.00                        incw   %di
 # CHECK-NEXT:  1      6     2.00    *      *            incw   (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     1.00                        incl   %edi
 # CHECK-NEXT:  1      6     2.00    *      *            incl   (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     1.00                        incq   %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            incq   (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           incq    (%rax)
 # CHECK-NEXT:  1      100   0.50                  U     insb   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.50                  U     insw   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.50                  U     insl   %dx, %es:(%rdi)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      10    6.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     1.00                        negb   %dil
 # CHECK-NEXT:  1      6     2.00    *      *            negb   (%r8)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     1.00                        negw   %si
 # CHECK-NEXT:  1      6     2.00    *      *            negw   (%r9)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     1.00                        negl   %edx
 # CHECK-NEXT:  1      6     2.00    *      *            negl   (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     1.00                        negq   %rcx
 # CHECK-NEXT:  1      6     2.00    *      *            negq   (%r10)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           negq    (%r10)
 # CHECK-NEXT:  1      1     1.00                        nop
 # CHECK-NEXT:  1      1     1.00                        nopw   %di
 # CHECK-NEXT:  1      1     1.00                        nopw   (%rcx)
@@ -1251,41 +1445,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        nopq   (%r9)
 # CHECK-NEXT:  1      1     1.00                        notb   %dil
 # CHECK-NEXT:  1      6     2.00    *      *            notb   (%r8)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     1.00                        notw   %si
 # CHECK-NEXT:  1      6     2.00    *      *            notw   (%r9)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     1.00                        notl   %edx
 # CHECK-NEXT:  1      6     2.00    *      *            notl   (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     1.00                        notq   %rcx
 # CHECK-NEXT:  1      6     2.00    *      *            notq   (%r10)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           notq    (%r10)
 # CHECK-NEXT:  1      1     1.00                        orb    $7, %al
 # CHECK-NEXT:  1      1     1.00                        orb    $7, %dil
 # CHECK-NEXT:  1      6     2.00    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        orb    %sil, %dil
 # CHECK-NEXT:  1      6     2.00    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   orb    (%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        orw    $511, %ax
 # CHECK-NEXT:  1      1     1.00                        orw    $511, %di
 # CHECK-NEXT:  1      6     2.00    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     1.00                        orw    $7, %di
 # CHECK-NEXT:  1      6     2.00    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        orw    %si, %di
 # CHECK-NEXT:  1      6     2.00    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   orw    (%rax), %di
 # CHECK-NEXT:  1      1     1.00                        orl    $665536, %eax
 # CHECK-NEXT:  1      1     1.00                        orl    $665536, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        orl    $7, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        orl    %esi, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   orl    (%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        orq    $665536, %rax
 # CHECK-NEXT:  1      1     1.00                        orq    $665536, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        orq    $7, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        orq    %rsi, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     outb   %al, $7
 # CHECK-NEXT:  1      100   0.50                  U     outb   %al, %dx
@@ -1473,44 +1682,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        sbbb   $0, %al
 # CHECK-NEXT:  1      1     1.00                        sbbb   $0, %dil
 # CHECK-NEXT:  2      6     2.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  2      6     2.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:  2      6     2.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbb   %sil, %dil
 # CHECK-NEXT:  2      6     2.00    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   sbbb   (%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        sbbw   $0, %ax
 # CHECK-NEXT:  1      1     1.00                        sbbw   $0, %di
 # CHECK-NEXT:  2      6     2.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  2      6     2.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:  2      6     2.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbw   $7, %di
 # CHECK-NEXT:  2      6     2.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbw   %si, %di
 # CHECK-NEXT:  2      6     2.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   sbbw   (%rax), %di
 # CHECK-NEXT:  1      1     1.00                        sbbl   $0, %eax
 # CHECK-NEXT:  1      1     1.00                        sbbl   $0, %edi
 # CHECK-NEXT:  2      6     2.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  2      6     2.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:  2      6     2.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbl   $7, %edi
 # CHECK-NEXT:  2      6     2.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbl   %esi, %edi
 # CHECK-NEXT:  2      6     2.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   sbbl   (%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        sbbq   $0, %rax
 # CHECK-NEXT:  1      1     1.00                        sbbq   $0, %rdi
 # CHECK-NEXT:  2      6     2.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbq    $0, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbq   $665536, %rax
 # CHECK-NEXT:  1      1     1.50                        sbbq   $665536, %rdi
 # CHECK-NEXT:  2      6     2.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbq   $7, %rdi
 # CHECK-NEXT:  2      6     2.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  2      6     2.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  2      6     2.00    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     scasb  %es:(%rdi), %al
 # CHECK-NEXT:  1      100   0.50                  U     scasw  %es:(%rdi), %ax
@@ -1581,32 +1805,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        subb   $7, %al
 # CHECK-NEXT:  1      1     1.00                        subb   $7, %dil
 # CHECK-NEXT:  1      6     2.00    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        subb   %sil, %dil
 # CHECK-NEXT:  1      6     2.00    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   subb   (%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        subw   $511, %ax
 # CHECK-NEXT:  1      1     1.00                        subw   $511, %di
 # CHECK-NEXT:  1      6     2.00    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     1.00                        subw   $7, %di
 # CHECK-NEXT:  1      6     2.00    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        subw   %si, %di
 # CHECK-NEXT:  1      6     2.00    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   subw   (%rax), %di
 # CHECK-NEXT:  1      1     1.00                        subl   $665536, %eax
 # CHECK-NEXT:  1      1     1.00                        subl   $665536, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        subl   $7, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        subl   %esi, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   subl   (%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        subq   $665536, %rax
 # CHECK-NEXT:  1      1     1.00                        subq   $665536, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        subq   $7, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        subq   %rsi, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     1.00                        testb  $7, %al
 # CHECK-NEXT:  1      1     1.00                        testb  $7, %dil
@@ -1638,53 +1873,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     wrmsr
 # CHECK-NEXT:  2      1     1.00                        xaddb  %bl, %cl
 # CHECK-NEXT:  4      6     20.00   *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  4      6     20.00   *      *            lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT:  2      1     1.00                        xaddw  %bx, %cx
 # CHECK-NEXT:  4      6     20.00   *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  4      6     20.00   *      *            lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT:  2      1     1.00                        xaddl  %ebx, %ecx
 # CHECK-NEXT:  4      6     20.00   *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  4      6     20.00   *      *            lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT:  2      1     1.00                        xaddq  %rbx, %rcx
 # CHECK-NEXT:  4      6     20.00   *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  4      6     20.00   *      *            lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT:  2      1     1.00                        xchgb  %bl, %cl
 # CHECK-NEXT:  2      5     2.00    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT:  2      1     1.00                        xchgw  %bx, %ax
 # CHECK-NEXT:  2      1     1.00                        xchgw  %bx, %cx
 # CHECK-NEXT:  2      5     2.00    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  2      1     1.00                        xchgl  %ebx, %eax
 # CHECK-NEXT:  2      1     1.00                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  2      5     2.00    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  2      1     1.00                        xchgq  %rbx, %rax
 # CHECK-NEXT:  2      1     1.00                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  2      5     2.00    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  1      6     0.50    *                   xlatb
 # CHECK-NEXT:  1      1     1.00                        xorb   $7, %al
 # CHECK-NEXT:  1      1     1.00                        xorb   $7, %dil
 # CHECK-NEXT:  1      6     2.00    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        xorb   %sil, %dil
 # CHECK-NEXT:  1      6     2.00    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   xorb   (%rax), %dil
 # CHECK-NEXT:  1      1     1.00                        xorw   $511, %ax
 # CHECK-NEXT:  1      1     1.00                        xorw   $511, %di
 # CHECK-NEXT:  1      6     2.00    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     1.00                        xorw   $7, %di
 # CHECK-NEXT:  1      6     2.00    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        xorw   %si, %di
 # CHECK-NEXT:  1      6     2.00    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   xorw   (%rax), %di
 # CHECK-NEXT:  1      1     1.00                        xorl   $665536, %eax
 # CHECK-NEXT:  1      1     1.00                        xorl   $665536, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        xorl   $7, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        xorl   %esi, %edi
 # CHECK-NEXT:  1      6     2.00    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   xorl   (%rax), %edi
 # CHECK-NEXT:  1      1     1.00                        xorq   $665536, %rax
 # CHECK-NEXT:  1      1     1.00                        xorq   $665536, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        xorq   $7, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        xorq   %rsi, %rdi
 # CHECK-NEXT:  1      6     2.00    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  1      6     2.00    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  1      5     1.50    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1714,111 +1968,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0.0]  [0.1]  [1]    [2]    [3]    [4]    [5]    [6]    [7.0]  [7.1]  [8.0]  [8.1]  [9]    [10]   [11]   [12]   [13]   [14]   [15]   [16.0] [16.1] [17]   [18]
-# CHECK-NEXT: 550.50 550.50  -      -     246.00 1323.50 1648.50  -    -      -      -      -      -      -      -      -      -      -      -     450.00 450.00 136.00 201.00
+# CHECK-NEXT: 769.50 769.50  -      -     246.00 1815.50 2220.50  -    -      -      -      -      -      -      -      -      -      -      -     616.50 616.50 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:
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb    $0, %al
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb    $0, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcb    $0, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcb    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb    $7, %al
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb    $7, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcb    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcb    %sil, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcb    %sil, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcb    %sil, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     adcb    (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    $0, %ax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    $0, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcw    $0, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcw    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    $511, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcw    $511, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    $7, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcw    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcw    %si, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcw    %si, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcw    %si, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     adcw    (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    $0, %eax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    $0, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcl    $0, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcl    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    $665536, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcl    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    $7, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcl    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcl    %esi, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcl    %esi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcl    %esi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     adcl    (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    $0, %rax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    $0, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcq    $0, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcq    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    $665536, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcq    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    $7, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcq    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     adcq    %rsi, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   adcq    %rsi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            adcq    %rsi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     adcq    (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addb    $7, %al
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addb    $7, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   addb    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            addb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addb    %sil, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   addb    %sil, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            addb    %sil, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     addb    (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw    $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw    $511, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   addw    $511, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            addw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw    $7, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   addw    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            addw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addw    %si, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   addw    %si, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            addw    %si, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     addw    (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl    $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl    $665536, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   addl    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            addl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl    $7, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   addl    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            addl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addl    %esi, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   addl    %esi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            addl    %esi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     addl    (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq    $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq    $665536, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   addq    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            addq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq    $7, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   addq    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            addq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     addq    %rsi, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   addq    %rsi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            addq    %rsi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     addq    (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andb    $7, %al
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andb    $7, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   andb    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            andb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andb    %sil, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   andb    %sil, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            andb    %sil, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     andb    (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw    $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw    $511, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   andw    $511, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            andw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw    $7, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   andw    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            andw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andw    %si, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   andw    %si, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            andw    %si, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     andw    (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl    $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl    $665536, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   andl    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            andl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl    $7, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   andl    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            andl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andl    %esi, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   andl    %esi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            andl    %esi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     andl    (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq    $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq    $665536, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   andq    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            andq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq    $7, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   andq    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            andq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     andq    %rsi, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   andq    %rsi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            andq    %rsi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     andq    (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     3.00   3.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bsfw    %si, %di
 # CHECK-NEXT:  -      -      -      -      -     4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     bsrw    %si, %di
@@ -1842,6 +2133,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btcw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btrw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btsw    %si, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btcw    %si, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btrw    %si, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btsw    %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btw     $7, %di
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcw    $7, %di
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrw    $7, %di
@@ -1850,6 +2144,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btcw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btrw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btsw    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btcw    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btrw    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btsw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btl     %esi, %edi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcl    %esi, %edi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrl    %esi, %edi
@@ -1858,6 +2155,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btcl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btrl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btsl    %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btcl    %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btrl    %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btsl    %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btl     $7, %edi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcl    $7, %edi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrl    $7, %edi
@@ -1866,6 +2166,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btcl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btrl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btsl    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btcl    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btrl    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btsl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btq     %rsi, %rdi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcq    %rsi, %rdi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrq    %rsi, %rdi
@@ -1874,6 +2177,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btcq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btrq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btsq    %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btcq    %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btrq    %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     22.00  22.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btsq    %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btq     $7, %rdi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btcq    $7, %rdi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     btrq    $7, %rdi
@@ -1882,6 +2188,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btcq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btrq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     btsq    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btcq    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btrq    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -     21.00  21.00   -      -      -      -      -      -      -      -      -      -      -      -     0.50   0.50    -      -     lock            btsq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cbtw
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cwtl
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cltq
@@ -1940,12 +2249,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     cpuid
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decb    %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   decb    (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            decb    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decw    %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   decw    (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            decw    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decl    %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   decl    (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            decl    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     decq    %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   decq    (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            decq    (%rax)
 # CHECK-NEXT:  -      -      -      -     12.00   -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     divb    %dil
 # CHECK-NEXT: 1.50   1.50    -      -     12.00   -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     divb    (%rax)
 # CHECK-NEXT:  -      -      -      -     15.00   -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     divw    %si
@@ -1997,12 +2310,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     inl     %dx, %eax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incb    %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   incb    (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            incb    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incw    %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   incw    (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            incw    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incl    %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   incl    (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            incl    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     incq    %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   incq    (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            incq    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     insb    %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     insw    %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     insl    %dx, %es:(%rdi)
@@ -2051,12 +2368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 1.50   1.50    -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50   6.00    -     mulq    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negb    %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   negb    (%r8)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            negb    (%r8)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negw    %si
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   negw    (%r9)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            negw    (%r9)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negl    %edx
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   negl    (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            negl    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     negq    %rcx
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   negq    (%r10)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            negq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopw    %di
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopw    (%rcx)
@@ -2066,41 +2387,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     nopq    (%r9)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notb    %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   notb    (%r8)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            notb    (%r8)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notw    %si
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   notw    (%r9)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            notw    (%r9)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notl    %edx
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   notl    (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            notl    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     notq    %rcx
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   notq    (%r10)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            notq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orb     $7, %al
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orb     $7, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   orb     $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            orb     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orb     %sil, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   orb     %sil, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            orb     %sil, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     orb     (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw     $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw     $511, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   orw     $511, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            orw     $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw     $7, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   orw     $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            orw     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orw     %si, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   orw     %si, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            orw     %si, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     orw     (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl     $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl     $665536, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   orl     $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            orl     $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl     $7, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   orl     $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            orl     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orl     %esi, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   orl     %esi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            orl     %esi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     orl     (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq     $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq     $665536, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   orq     $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            orq     $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq     $7, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   orq     $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            orq     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     orq     %rsi, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   orq     %rsi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            orq     %rsi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     orq     (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outb    %al, $7
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     outb    %al, %dx
@@ -2288,44 +2624,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb    $0, %al
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb    $0, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbb    $0, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbb    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb    $7, %al
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb    $7, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbb    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbb    %sil, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbb    %sil, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbb    %sil, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     sbbb    (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    $0, %ax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    $0, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbw    $0, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbw    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    $511, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbw    $511, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    $7, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbw    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbw    %si, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbw    %si, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbw    %si, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     sbbw    (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    $0, %eax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    $0, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbl    $0, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbl    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    $665536, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbl    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    $7, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbl    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbl    %esi, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbl    %esi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbl    %esi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     sbbl    (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    $0, %rax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    $0, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbq    $0, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbq    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     1.50   1.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    $665536, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbq    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    $7, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbq    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     sbbq    %rsi, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   sbbq    %rsi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            sbbq    %rsi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     sbbq    (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     scasb   %es:(%rdi), %al
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     scasw   %es:(%rdi), %ax
@@ -2396,32 +2747,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subb    $7, %al
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subb    $7, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   subb    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            subb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subb    %sil, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   subb    %sil, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            subb    %sil, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     subb    (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw    $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw    $511, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   subw    $511, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            subw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw    $7, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   subw    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            subw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subw    %si, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   subw    %si, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            subw    %si, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     subw    (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl    $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl    $665536, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   subl    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            subl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl    $7, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   subl    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            subl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subl    %esi, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   subl    %esi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            subl    %esi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     subl    (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq    $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq    $665536, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   subq    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            subq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq    $7, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   subq    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            subq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     subq    %rsi, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   subq    %rsi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            subq    %rsi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     subq    (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testb   $7, %al
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     testb   $7, %dil
@@ -2453,51 +2815,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     wrmsr
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddb   %bl, %cl
 # CHECK-NEXT:  -      -      -      -      -      -     20.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddb   %bl, (%rcx)
+# CHECK-NEXT:  -      -      -      -      -      -     20.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            xaddb   %bl, (%rcx)
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddw   %bx, %cx
 # CHECK-NEXT:  -      -      -      -      -      -     20.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddw   %ax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -     20.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            xaddw   %ax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddl   %ebx, %ecx
 # CHECK-NEXT:  -      -      -      -      -      -     20.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddl   %eax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -     20.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            xaddl   %eax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddq   %rbx, %rcx
 # CHECK-NEXT:  -      -      -      -      -      -     20.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xaddq   %rax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -      -     20.00   -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     lock            xaddq   %rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgb   %bl, %cl
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xchgb   %bl, (%rbx)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xchgb   %bl, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgw   %bx, %ax
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgw   %bx, %cx
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xchgw   %ax, (%rbx)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xchgw   %ax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgl   %ebx, %eax
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgl   %ebx, %ecx
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xchgl   %eax, (%rbx)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xchgl   %eax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgq   %rbx, %rax
 # CHECK-NEXT:  -      -      -      -      -      -     1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xchgq   %rbx, %rcx
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xchgq   %rax, (%rbx)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xchgq   %rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xlatb
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorb    $7, %al
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorb    $7, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xorb    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xorb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorb    %sil, %dil
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xorb    %sil, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xorb    %sil, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     xorb    (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw    $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw    $511, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xorw    $511, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xorw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw    $7, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xorw    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xorw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorw    %si, %di
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xorw    %si, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xorw    %si, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     xorw    (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl    $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl    $665536, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xorl    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xorl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl    $7, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xorl    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xorl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorl    %esi, %edi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xorl    %esi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xorl    %esi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     xorl    (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq    $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq    $665536, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xorq    $665536, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xorq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq    $7, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xorq    $7, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xorq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -      -      -      -      -     xorq    %rsi, %rdi
 # CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   xorq    %rsi, (%rax)
+# CHECK-NEXT: 2.00   2.00    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -     1.00   lock            xorq    %rsi, (%rax)
 # CHECK-NEXT: 1.50   1.50    -      -      -     1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     1.50   1.50    -      -     xorq    (%rax), %rdi
index 4240d527465ced3111568a304e288193f6b8ea07..aa232ceabef43ad190cd18f6a2646a4ffc874b8b 100644 (file)
 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
@@ -254,12 +309,16 @@ 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.50                        adcb   $0, %al
 # CHECK-NEXT:  1      1     0.50                        adcb   $0, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        adcb   $7, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcb   %sil, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        adcw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        adcw   $0, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        adcw   $511, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   $7, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   %si, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        adcl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        adcl   $0, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        adcl   $665536, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   $7, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   %esi, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        adcq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        adcq   $0, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        adcq   $665536, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   $7, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   %rsi, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        addb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        addb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        addw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        addw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        addl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        addl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        addq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        addq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        andb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        andb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        andw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        andw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        andl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        andl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        andq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        andq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  1      3     1.00                        bsfw   %si, %di
 # CHECK-NEXT:  1      3     1.00                        bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      6     1.00    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btsw    %si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw    $7, %di
 # CHECK-NEXT:  1      1     0.50                        btcw   $7, %di
 # CHECK-NEXT:  1      1     0.50                        btrw   $7, %di
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      6     1.00    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btsw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   %esi, %edi
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      6     1.00    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btsl    %esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   $7, %edi
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      6     1.00    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btsl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   %rsi, %rdi
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      6     1.00    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btsq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   $7, %rdi
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      6     1.00    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            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
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  8      18    2.00                  U     cpuid
 # CHECK-NEXT:  1      1     0.25                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            decw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            decl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            decq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decq    (%rax)
 # CHECK-NEXT:  1      25    10.00                 U     divb   %dil
 # CHECK-NEXT:  8      34    2.00    *             U     divb   (%rax)
 # CHECK-NEXT:  32     80    8.00                  U     divw   %si
@@ -1182,12 +1368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  23     34    5.00                  U     inl    %dx, %eax
 # CHECK-NEXT:  1      1     0.25                        incb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            incb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            incw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            incl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            incq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incq    (%rax)
 # CHECK-NEXT:  8      20    1.25                  U     insb   %dx, %es:(%rdi)
 # CHECK-NEXT:  8      20    1.25                  U     insw   %dx, %es:(%rdi)
 # CHECK-NEXT:  8      20    1.25                  U     insl   %dx, %es:(%rdi)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      9     1.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     0.25                        negb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            negb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     0.25                        negw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            negw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     0.25                        negl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            negl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        negq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            negq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            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)
@@ -1251,41 +1445,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        nopq   (%r9)
 # CHECK-NEXT:  1      1     0.25                        notb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            notb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     0.25                        notw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            notw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     0.25                        notl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            notl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        notq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            notq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notq    (%r10)
 # CHECK-NEXT:  1      1     0.25                        orb    $7, %al
 # CHECK-NEXT:  1      1     0.25                        orb    $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orb    %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orb    (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        orw    $511, %ax
 # CHECK-NEXT:  1      1     0.25                        orw    $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw    $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw    %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orw    (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        orl    $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        orl    $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl    $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl    %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orl    (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        orq    $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        orq    $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq    $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq    %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  23     35    5.00                  U     outb   %al, $7
 # CHECK-NEXT:  23     35    5.00                  U     outb   %al, %dx
@@ -1473,44 +1682,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.50                        sbbb   $0, %al
 # CHECK-NEXT:  1      1     0.50                        sbbb   $0, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        sbbb   $7, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbb   %sil, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        sbbw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        sbbw   $0, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        sbbw   $511, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   $7, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   %si, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        sbbl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        sbbl   $0, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        sbbl   $665536, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   $7, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   %esi, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        sbbq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        sbbq   $0, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        sbbq   $665536, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   $7, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  3      7     0.50                  U     scasb  %es:(%rdi), %al
 # CHECK-NEXT:  3      7     0.50                  U     scasw  %es:(%rdi), %ax
@@ -1581,32 +1805,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        subb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        subb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        subw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        subw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        subl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        subl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        subq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        subq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        testb  $7, %al
 # CHECK-NEXT:  1      1     0.25                        testb  $7, %dil
@@ -1638,53 +1873,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     wrmsr
 # CHECK-NEXT:  3      2     0.75                        xaddb  %bl, %cl
 # CHECK-NEXT:  5      7     1.00    *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT:  3      2     0.75                        xaddw  %bx, %cx
 # CHECK-NEXT:  5      7     1.00    *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xaddl  %ebx, %ecx
 # CHECK-NEXT:  5      7     1.00    *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xaddq  %rbx, %rcx
 # CHECK-NEXT:  5      7     1.00    *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgb  %bl, %cl
 # CHECK-NEXT:  6      8     1.00    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgw  %bx, %ax
 # CHECK-NEXT:  3      2     0.75                        xchgw  %bx, %cx
 # CHECK-NEXT:  6      8     1.00    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgl  %ebx, %eax
 # CHECK-NEXT:  3      2     0.75                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  6      8     1.00    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgq  %rbx, %rax
 # CHECK-NEXT:  3      2     0.75                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  6      8     1.00    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  1      5     0.50    *                   xlatb
 # CHECK-NEXT:  1      1     0.25                        xorb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        xorb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        xorw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        xorw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        xorl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        xorl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        xorq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        xorq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1701,111 +1955,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT: 50.00   -     523.50 347.50 272.67 272.67 218.00 260.00 557.00 86.67
+# CHECK-NEXT: 50.00   -     590.50 380.00 378.50 378.50 345.00 292.50 624.00 129.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcb       $0, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcb       $0, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcb       $7, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcb       $7, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcb       %sil, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       %sil, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     adcb       (%rax), %dil
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $0, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $0, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcw       $511, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $511, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $511, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $7, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       %si, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       %si, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     adcw       (%rax), %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $0, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $0, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcl       $665536, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $665536, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $7, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       %esi, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       %esi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     adcl       (%rax), %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $0, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $0, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcq       $665536, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $665536, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $7, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       %rsi, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     andq       (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     bsfw       %si, %di
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     bsrw       %si, %di
@@ -1829,6 +2120,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btcw       %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btrw       %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btsw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btcw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btrw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btsw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btw        $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcw       $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrw       $7, %di
@@ -1837,6 +2131,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcw       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrw       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btsw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btl        %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcl       %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrl       %esi, %edi
@@ -1845,6 +2142,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btcl       %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btrl       %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btsl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btcl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btrl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btsl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btl        $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcl       $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrl       $7, %edi
@@ -1853,6 +2153,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcl       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrl       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btsl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btq        %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrq       %rsi, %rdi
@@ -1861,6 +2164,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btcq       %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btrq       %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btsq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btcq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btrq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btsq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btq        $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcq       $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrq       $7, %rdi
@@ -1869,6 +2175,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcq       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrq       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   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
@@ -1927,12 +2236,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.75   1.25    -      -      -     2.25   2.75    -     cpuid
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decb       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decb    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decw       %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decw       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decw    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decl       %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decq       %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decq       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decq    (%rax)
 # CHECK-NEXT: 10.00   -     1.00    -      -      -      -      -      -      -     divb       %dil
 # CHECK-NEXT:  -      -     2.25   2.25   0.50   0.50    -     2.25   0.25    -     divb       (%rax)
 # CHECK-NEXT:  -      -     10.25  10.25   -      -      -     5.75   5.75    -     divw       %si
@@ -1984,12 +2297,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     4.50   2.50   1.50   1.50    -     3.50   9.50    -     inl        %dx, %eax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incb       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incb    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incw       %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incw       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incw    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incl       %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incq       %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incq       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incq    (%rax)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insb       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insw       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insl       %dx, %es:(%rdi)
@@ -2038,12 +2355,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -     1.00    -      -     mulq       (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negb       (%r8)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negb    (%r8)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negw       %si
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negw       (%r9)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negw    (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negl       %edx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negq       %rcx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negq       (%r10)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopw       %di
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopw       (%rcx)
@@ -2053,41 +2374,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopq       (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notb       (%r8)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notb    (%r8)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notw       %si
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notw       (%r9)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notw    (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notl       %edx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notq       %rcx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notq       (%r10)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orb        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orb     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orb        %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orb        %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orb     %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orw        $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orw        %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orl        $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orl        %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orq        $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orq        %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     orq        (%rax), %rdi
 # CHECK-NEXT:  -      -     4.50   2.50   1.33   1.33    -     3.50   9.50   0.33   outb       %al, $7
 # CHECK-NEXT:  -      -     4.50   2.50   1.33   1.33    -     3.50   9.50   0.33   outb       %al, %dx
@@ -2275,44 +2611,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbb       $0, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbb       $0, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbb       $7, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbb       $7, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbb       %sil, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       %sil, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbb       (%rax), %dil
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $0, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $0, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbw       $511, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $511, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $511, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $7, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       %si, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       %si, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbw       (%rax), %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $0, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $0, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbl       $665536, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $665536, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $7, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       %esi, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       %esi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbl       (%rax), %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $0, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $0, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbq       $665536, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $665536, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $7, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       %rsi, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbq       (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     scasb      %es:(%rdi), %al
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     scasw      %es:(%rdi), %ax
@@ -2383,32 +2734,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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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
@@ -2440,51 +2802,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     wrmsr
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddb      %bl, %cl
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddb      %bl, (%rcx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddb   %bl, (%rcx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddw      %bx, %cx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddw      %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddl      %ebx, %ecx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddl      %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddq      %rbx, %rcx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddq      %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddq   %rax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgb      %bl, %cl
 # CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   xchgb      %bl, (%rbx)
+# CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   lock               xchgb   %bl, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgw      %bx, %ax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgw      %bx, %cx
 # CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   xchgw      %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   lock               xchgw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgl      %ebx, %eax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgl      %ebx, %ecx
 # CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   xchgl      %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   lock               xchgl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgq      %rbx, %rax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgq      %rbx, %rcx
 # CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   xchgq      %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   lock               xchgq   %rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     xorq       (%rax), %rdi
index c4b136a96256ab39b9778d090142eca9854c0afb..3ff3825f0b3a7f9bdb97297543415e8bc9975a16 100644 (file)
 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
@@ -254,12 +309,16 @@ 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,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      5     1.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  1      5     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      5     1.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcb   %sil, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  1      4     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      5     1.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  1      5     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      5     1.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcw   $7, %di
 # CHECK-NEXT:  1      5     1.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcw   %si, %di
 # CHECK-NEXT:  1      5     1.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  1      4     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      5     1.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  1      5     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      5     1.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcl   $7, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcl   %esi, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  1      4     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      5     1.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  1      5     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      5     1.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcq   $7, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        adcq   %rsi, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        addb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        addb   $7, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addb   %sil, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   addb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        addw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        addw   $511, %di
 # CHECK-NEXT:  1      5     1.00    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addw   $7, %di
 # CHECK-NEXT:  1      5     1.00    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addw   %si, %di
 # CHECK-NEXT:  1      5     1.00    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   addw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        addl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        addl   $665536, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addl   $7, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addl   %esi, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   addl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        addq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        addq   $665536, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addq   $7, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addq   %rsi, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   addq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        andb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        andb   $7, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andb   %sil, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   andb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        andw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        andw   $511, %di
 # CHECK-NEXT:  1      5     1.00    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andw   $7, %di
 # CHECK-NEXT:  1      5     1.00    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andw   %si, %di
 # CHECK-NEXT:  1      5     1.00    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   andw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        andl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        andl   $665536, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andl   $7, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andl   %esi, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   andl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        andq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        andq   $665536, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andq   $7, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andq   %rsi, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  7      4     4.00                        bsfw   %si, %di
 # CHECK-NEXT:  8      5     4.00                        bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  8      5     1.00    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  8      5     1.00    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  8      5     1.00    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            lock           btsw    %si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw    $7, %di
 # CHECK-NEXT:  2      1     0.50                        btcw   $7, %di
 # CHECK-NEXT:  2      1     0.50                        btrw   $7, %di
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      5     1.00    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  4      5     1.00    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  4      5     1.00    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            lock           btsw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    %esi, %edi
 # CHECK-NEXT:  2      1     0.50                        btcl   %esi, %edi
 # CHECK-NEXT:  2      1     0.50                        btrl   %esi, %edi
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  8      5     1.00    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  8      5     1.00    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  8      5     1.00    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            lock           btsl    %esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    $7, %edi
 # CHECK-NEXT:  2      1     0.50                        btcl   $7, %edi
 # CHECK-NEXT:  2      1     0.50                        btrl   $7, %edi
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      5     1.00    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  4      5     1.00    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  4      5     1.00    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            lock           btsl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    %rsi, %rdi
 # CHECK-NEXT:  2      1     0.50                        btcq   %rsi, %rdi
 # CHECK-NEXT:  2      1     0.50                        btrq   %rsi, %rdi
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  8      5     1.00    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  8      5     1.00    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  8      5     1.00    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  8      5     1.00    *      *            lock           btsq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    $7, %rdi
 # CHECK-NEXT:  2      1     0.50                        btcq   $7, %rdi
 # CHECK-NEXT:  2      1     0.50                        btrq   $7, %rdi
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      5     1.00    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  4      5     1.00    *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  4      5     1.00    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  4      5     1.00    *      *            lock           btsq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        cbtw
 # CHECK-NEXT:  1      1     0.50                        cwtl
 # CHECK-NEXT:  1      1     0.50                        cltq
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     cpuid
 # CHECK-NEXT:  1      1     0.50                        decb   %dil
 # CHECK-NEXT:  1      5     1.00    *      *            decb   (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     0.50                        decw   %di
 # CHECK-NEXT:  1      5     1.00    *      *            decw   (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     0.50                        decl   %edi
 # CHECK-NEXT:  1      5     1.00    *      *            decl   (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        decq   %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            decq   (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           decq    (%rax)
 # CHECK-NEXT:  1      12    12.00                 U     divb   %dil
 # CHECK-NEXT:  1      15    12.00   *             U     divb   (%rax)
 # CHECK-NEXT:  2      17    17.00                 U     divw   %si
@@ -1182,12 +1368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     inl    %dx, %eax
 # CHECK-NEXT:  1      1     0.50                        incb   %dil
 # CHECK-NEXT:  1      5     1.00    *      *            incb   (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     0.50                        incw   %di
 # CHECK-NEXT:  1      5     1.00    *      *            incw   (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     0.50                        incl   %edi
 # CHECK-NEXT:  1      5     1.00    *      *            incl   (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        incq   %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            incq   (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           incq    (%rax)
 # CHECK-NEXT:  1      100   0.50                  U     insb   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.50                  U     insw   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.50                  U     insl   %dx, %es:(%rdi)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      9     4.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     0.50                        negb   %dil
 # CHECK-NEXT:  1      5     1.00    *      *            negb   (%r8)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     0.50                        negw   %si
 # CHECK-NEXT:  1      5     1.00    *      *            negw   (%r9)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     0.50                        negl   %edx
 # CHECK-NEXT:  1      5     1.00    *      *            negl   (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        negq   %rcx
 # CHECK-NEXT:  1      5     1.00    *      *            negq   (%r10)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           negq    (%r10)
 # CHECK-NEXT:  1      1     0.50                        nop
 # CHECK-NEXT:  1      1     0.50                        nopw   %di
 # CHECK-NEXT:  1      1     0.50                        nopw   (%rcx)
@@ -1251,41 +1445,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        nopq   (%r9)
 # CHECK-NEXT:  1      1     0.50                        notb   %dil
 # CHECK-NEXT:  1      5     1.00    *      *            notb   (%r8)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     0.50                        notw   %si
 # CHECK-NEXT:  1      5     1.00    *      *            notw   (%r9)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     0.50                        notl   %edx
 # CHECK-NEXT:  1      5     1.00    *      *            notl   (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        notq   %rcx
 # CHECK-NEXT:  1      5     1.00    *      *            notq   (%r10)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           notq    (%r10)
 # CHECK-NEXT:  1      1     0.50                        orb    $7, %al
 # CHECK-NEXT:  1      1     0.50                        orb    $7, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orb    %sil, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   orb    (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        orw    $511, %ax
 # CHECK-NEXT:  1      1     0.50                        orw    $511, %di
 # CHECK-NEXT:  1      5     1.00    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orw    $7, %di
 # CHECK-NEXT:  1      5     1.00    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orw    %si, %di
 # CHECK-NEXT:  1      5     1.00    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   orw    (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        orl    $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        orl    $665536, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orl    $7, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orl    %esi, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   orl    (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        orq    $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        orq    $665536, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orq    $7, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orq    %rsi, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     outb   %al, $7
 # CHECK-NEXT:  1      100   0.50                  U     outb   %al, %dx
@@ -1473,44 +1682,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      5     1.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  1      5     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      5     1.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbb   %sil, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  1      4     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      5     1.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  1      5     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      5     1.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbw   $7, %di
 # CHECK-NEXT:  1      5     1.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbw   %si, %di
 # CHECK-NEXT:  1      5     1.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  1      4     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      5     1.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  1      5     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      5     1.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbl   $7, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbl   %esi, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  1      4     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      5     1.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  1      5     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      5     1.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbq   $7, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  1      1     1.00                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     scasb  %es:(%rdi), %al
 # CHECK-NEXT:  1      100   0.50                  U     scasw  %es:(%rdi), %ax
@@ -1581,32 +1805,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        subb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        subb   $7, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subb   %sil, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   subb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        subw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        subw   $511, %di
 # CHECK-NEXT:  1      5     1.00    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subw   $7, %di
 # CHECK-NEXT:  1      5     1.00    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subw   %si, %di
 # CHECK-NEXT:  1      5     1.00    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   subw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        subl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        subl   $665536, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subl   $7, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subl   %esi, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   subl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        subq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        subq   $665536, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subq   $7, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subq   %rsi, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        testb  $7, %al
 # CHECK-NEXT:  1      1     0.50                        testb  $7, %dil
@@ -1638,53 +1873,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.50                  U     wrmsr
 # CHECK-NEXT:  1      1     0.50                        xaddb  %bl, %cl
 # CHECK-NEXT:  1      4     1.00    *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  1      4     1.00    *      *            lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT:  1      1     0.50                        xaddw  %bx, %cx
 # CHECK-NEXT:  1      4     1.00    *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  1      4     1.00    *      *            lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xaddl  %ebx, %ecx
 # CHECK-NEXT:  1      4     1.00    *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  1      4     1.00    *      *            lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xaddq  %rbx, %rcx
 # CHECK-NEXT:  1      4     1.00    *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  1      4     1.00    *      *            lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xchgb  %bl, %cl
 # CHECK-NEXT:  1      4     1.00    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  1      4     1.00    *      *            lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xchgw  %bx, %ax
 # CHECK-NEXT:  1      1     0.50                        xchgw  %bx, %cx
 # CHECK-NEXT:  1      4     1.00    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  1      4     1.00    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xchgl  %ebx, %eax
 # CHECK-NEXT:  1      1     0.50                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  1      4     1.00    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  1      4     1.00    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xchgq  %rbx, %rax
 # CHECK-NEXT:  1      1     0.50                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  1      4     1.00    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  1      4     1.00    *      *            lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  1      3     1.00    *                   xlatb
 # CHECK-NEXT:  1      1     0.50                        xorb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        xorb   $7, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorb   %sil, %dil
 # CHECK-NEXT:  1      5     1.00    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   xorb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        xorw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        xorw   $511, %di
 # CHECK-NEXT:  1      5     1.00    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorw   $7, %di
 # CHECK-NEXT:  1      5     1.00    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorw   %si, %di
 # CHECK-NEXT:  1      5     1.00    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   xorw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        xorl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        xorl   $665536, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorl   $7, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorl   %esi, %edi
 # CHECK-NEXT:  1      5     1.00    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   xorl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        xorq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        xorq   $665536, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorq   $7, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorq   %rsi, %rdi
 # CHECK-NEXT:  1      5     1.00    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  1      5     1.00    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1705,111 +1959,148 @@ 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: 624.00 674.00 380.00  -      -      -      -     397.00 64.00  298.00  -      -      -      -
+# CHECK-NEXT: 702.50 752.50 380.00  -      -      -      -     524.00 64.00  425.00  -      -      -      -
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]   [13]   Instructions:
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcb   $0, %al
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcb   $0, %dil
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcb   $0, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcb    $0, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcb   $7, %al
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcb   $7, %dil
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcb   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcb    $7, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcb   %sil, %dil
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcb   %sil, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcb    %sil, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     adcb   (%rax), %dil
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcw   $0, %ax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcw   $0, %di
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcw   $0, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcw    $0, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcw   $511, %ax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcw   $511, %di
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcw   $511, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcw    $511, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcw   $7, %di
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcw   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcw    $7, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcw   %si, %di
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcw   %si, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcw    %si, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     adcw   (%rax), %di
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcl   $0, %eax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcl   $0, %edi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcl   $0, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcl    $0, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcl   $665536, %eax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcl   $665536, %edi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcl   $665536, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcl    $665536, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcl   $7, %edi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcl   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcl    $7, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcl   %esi, %edi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcl   %esi, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcl    %esi, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     adcl   (%rax), %edi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcq   $0, %rax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcq   $0, %rdi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcq   $0, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcq    $0, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcq   $665536, %rax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcq   $665536, %rdi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcq   $665536, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcq    $665536, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcq   $7, %rdi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcq   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcq    $7, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     adcq   %rsi, %rdi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     adcq   %rsi, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           adcq    %rsi, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     adcq   (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addb   $7, %al
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addb   $7, %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addb   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           addb    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addb   %sil, %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addb   %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           addb    %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     addb   (%rax), %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addw   $511, %ax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addw   $511, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addw   $511, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           addw    $511, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addw   $7, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addw   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           addw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addw   %si, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addw   %si, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           addw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     addw   (%rax), %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addl   $665536, %eax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addl   $665536, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addl   $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           addl    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addl   $7, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addl   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           addl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addl   %esi, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addl   %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           addl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     addl   (%rax), %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addq   $665536, %rax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addq   $665536, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addq   $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           addq    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addq   $7, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addq   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           addq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     addq   %rsi, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     addq   %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           addq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     addq   (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andb   $7, %al
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andb   $7, %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     andb   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           andb    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andb   %sil, %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     andb   %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           andb    %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     andb   (%rax), %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andw   $511, %ax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andw   $511, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     andw   $511, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           andw    $511, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andw   $7, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     andw   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           andw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andw   %si, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     andw   %si, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           andw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     andw   (%rax), %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andl   $665536, %eax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andl   $665536, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     andl   $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           andl    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andl   $7, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     andl   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           andl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andl   %esi, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     andl   %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           andl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     andl   (%rax), %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andq   $665536, %rax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andq   $665536, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     andq   $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           andq    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andq   $7, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     andq   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           andq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     andq   %rsi, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     andq   %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           andq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     andq   (%rax), %rdi
 # CHECK-NEXT: 4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -     bsfw   %si, %di
 # CHECK-NEXT: 4.00   4.00    -      -      -      -      -      -      -      -      -      -      -      -     bsrw   %si, %di
@@ -1833,6 +2124,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btcw   %si, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btrw   %si, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btsw   %si, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btcw    %si, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btrw    %si, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btsw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btw    $7, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btcw   $7, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btrw   $7, %di
@@ -1841,6 +2135,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btcw   $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btrw   $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btsw   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btcw    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btrw    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btsw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btl    %esi, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btcl   %esi, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btrl   %esi, %edi
@@ -1849,6 +2146,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btcl   %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btrl   %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btsl   %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btcl    %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btrl    %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btsl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btl    $7, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btcl   $7, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btrl   $7, %edi
@@ -1857,6 +2157,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btcl   $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btrl   $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btsl   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btcl    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btrl    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btsl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btq    %rsi, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btcq   %rsi, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btrq   %rsi, %rdi
@@ -1865,6 +2168,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btcq   %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btrq   %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btsq   %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btcq    %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btrq    %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btsq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btq    $7, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btcq   $7, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     btrq   $7, %rdi
@@ -1873,6 +2179,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btcq   $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btrq   $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     btsq   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btcq    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btrq    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           btsq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cbtw
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cwtl
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cltq
@@ -1931,12 +2240,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     cpuid
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     decb   %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     decb   (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           decb    (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     decw   %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     decw   (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           decw    (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     decl   %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     decl   (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           decl    (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     decq   %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     decq   (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           decq    (%rax)
 # CHECK-NEXT:  -     1.00   12.00   -      -      -      -      -      -      -      -      -      -      -     divb   %dil
 # CHECK-NEXT:  -     1.00   12.00   -      -      -      -     1.00    -      -      -      -      -      -     divb   (%rax)
 # CHECK-NEXT:  -     1.00   17.00   -      -      -      -      -      -      -      -      -      -      -     divw   %si
@@ -1988,12 +2301,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     inl    %dx, %eax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     incb   %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     incb   (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           incb    (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     incw   %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     incw   (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           incw    (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     incl   %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     incl   (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           incl    (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     incq   %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     incq   (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           incq    (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     insb   %dx, %es:(%rdi)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     insw   %dx, %es:(%rdi)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     insl   %dx, %es:(%rdi)
@@ -2042,12 +2359,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -     1.00    -      -      -      -      -     1.00   4.00    -      -      -      -      -     mulq   (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     negb   %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     negb   (%r8)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           negb    (%r8)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     negw   %si
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     negw   (%r9)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           negw    (%r9)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     negl   %edx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     negl   (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           negl    (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     negq   %rcx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     negq   (%r10)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           negq    (%r10)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     nopw   %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     nopw   (%rcx)
@@ -2057,41 +2378,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     nopq   (%r9)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     notb   %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     notb   (%r8)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           notb    (%r8)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     notw   %si
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     notw   (%r9)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           notw    (%r9)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     notl   %edx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     notl   (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           notl    (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     notq   %rcx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     notq   (%r10)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           notq    (%r10)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orb    $7, %al
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orb    $7, %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     orb    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           orb     $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orb    %sil, %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     orb    %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           orb     %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     orb    (%rax), %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orw    $511, %ax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orw    $511, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     orw    $511, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           orw     $511, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orw    $7, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     orw    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           orw     $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orw    %si, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     orw    %si, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           orw     %si, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     orw    (%rax), %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orl    $665536, %eax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orl    $665536, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     orl    $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           orl     $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orl    $7, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     orl    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           orl     $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orl    %esi, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     orl    %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           orl     %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     orl    (%rax), %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orq    $665536, %rax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orq    $665536, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     orq    $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           orq     $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orq    $7, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     orq    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           orq     $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     orq    %rsi, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     orq    %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           orq     %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     orq    (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     outb   %al, $7
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     outb   %al, %dx
@@ -2279,44 +2615,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbb   $0, %al
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbb   $0, %dil
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbb   $0, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbb    $0, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbb   $7, %al
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbb   $7, %dil
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbb   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbb    $7, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbb   %sil, %dil
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbb   %sil, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbb    %sil, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbb   (%rax), %dil
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   $0, %ax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   $0, %di
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbw   $0, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbw    $0, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   $511, %ax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   $511, %di
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbw   $511, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbw    $511, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   $7, %di
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbw   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbw    $7, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbw   %si, %di
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbw   %si, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbw    %si, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbw   (%rax), %di
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   $0, %eax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   $0, %edi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbl   $0, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbl    $0, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   $665536, %eax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   $665536, %edi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbl   $665536, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbl    $665536, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   $7, %edi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbl   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbl    $7, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbl   %esi, %edi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbl   %esi, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbl    %esi, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbl   (%rax), %edi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   $0, %rax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   $0, %rdi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbq   $0, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbq    $0, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   $665536, %rax
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   $665536, %rdi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbq   $665536, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbq    $665536, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   $7, %rdi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbq   $7, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbq    $7, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -      -      -      -      -      -      -      -     sbbq   %rsi, %rdi
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     sbbq   %rsi, (%rax)
+# CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT: 1.00   1.00    -      -      -      -      -     1.00    -      -      -      -      -      -     sbbq   (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     scasb  %es:(%rdi), %al
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     scasw  %es:(%rdi), %ax
@@ -2387,32 +2738,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subb   $7, %al
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subb   $7, %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     subb   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           subb    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subb   %sil, %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     subb   %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           subb    %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     subb   (%rax), %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subw   $511, %ax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subw   $511, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     subw   $511, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           subw    $511, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subw   $7, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     subw   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           subw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subw   %si, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     subw   %si, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           subw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     subw   (%rax), %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subl   $665536, %eax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subl   $665536, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     subl   $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           subl    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subl   $7, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     subl   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           subl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subl   %esi, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     subl   %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           subl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     subl   (%rax), %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subq   $665536, %rax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subq   $665536, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     subq   $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           subq    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subq   $7, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     subq   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           subq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     subq   %rsi, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     subq   %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           subq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     subq   (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     testb  $7, %al
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     testb  $7, %dil
@@ -2444,51 +2806,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     wrmsr
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xaddb  %bl, %cl
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xaddb  %bl, (%rcx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xaddw  %bx, %cx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xaddw  %ax, (%rbx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xaddl  %ebx, %ecx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xaddl  %eax, (%rbx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xaddq  %rbx, %rcx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xaddq  %rax, (%rbx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xchgb  %bl, %cl
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xchgb  %bl, (%rbx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xchgw  %bx, %ax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xchgw  %bx, %cx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xchgw  %ax, (%rbx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xchgl  %ebx, %eax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xchgl  %ebx, %ecx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xchgl  %eax, (%rbx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xchgq  %rbx, %rax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xchgq  %rbx, %rcx
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xchgq  %rax, (%rbx)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00    -      -      -      -      -      -     xlatb
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorb   $7, %al
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorb   $7, %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xorb   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xorb    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorb   %sil, %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xorb   %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xorb    %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     xorb   (%rax), %dil
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorw   $511, %ax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorw   $511, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xorw   $511, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xorw    $511, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorw   $7, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xorw   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xorw    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorw   %si, %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xorw   %si, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xorw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     xorw   (%rax), %di
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorl   $665536, %eax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorl   $665536, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xorl   $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xorl    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorl   $7, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xorl   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xorl    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorl   %esi, %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xorl   %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xorl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     xorl   (%rax), %edi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorq   $665536, %rax
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorq   $665536, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xorq   $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xorq    $665536, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorq   $7, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xorq   $7, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xorq    $7, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -      -      -      -      -      -      -      -     xorq   %rsi, %rdi
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     xorq   %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -     1.00    -      -      -      -     lock           xorq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50    -      -      -      -      -     1.00    -      -      -      -      -      -     xorq   (%rax), %rdi
index 8bf04e2b3cd28d384bf94b889595fd87133b86e6..19894f326b5eb90dce332040f4ec5776d2ce8243 100644 (file)
 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,30 +291,34 @@ cmpsq
 
 cmpxchgb %cl, %bl
 cmpxchgb %cl, (%rbx)
-lock cmpxchgb  %cl, (%rbx)
+lock cmpxchgb %cl, (%rbx)
 
 cmpxchgw %cx, %bx
 cmpxchgw %cx, (%rbx)
-lock cmpxchgw  %cx, (%rbx)
+lock cmpxchgw %cx, (%rbx)
 
 cmpxchgl %ecx, %ebx
 cmpxchgl %ecx, (%rbx)
-lock cmpxchgl  %ecx, (%rbx)
+lock cmpxchgl %ecx, (%rbx)
 
 cmpxchgq %rcx, %rbx
 cmpxchgq %rcx, (%rbx)
-lock 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.67                        adcb   $0, %al
 # CHECK-NEXT:  2      2     0.67                        adcb   $0, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcb   $7, %al
 # CHECK-NEXT:  2      2     0.67                        adcb   $7, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcb   %sil, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcb   (%rax), %dil
 # CHECK-NEXT:  2      2     0.67                        adcw   $0, %ax
 # CHECK-NEXT:  2      2     0.67                        adcw   $0, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcw   $511, %ax
 # CHECK-NEXT:  2      2     0.67                        adcw   $511, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcw   $7, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcw   %si, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcw   (%rax), %di
 # CHECK-NEXT:  2      2     0.67                        adcl   $0, %eax
 # CHECK-NEXT:  2      2     0.67                        adcl   $0, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcl   $665536, %eax
 # CHECK-NEXT:  2      2     0.67                        adcl   $665536, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcl   $7, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcl   %esi, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcl   (%rax), %edi
 # CHECK-NEXT:  2      2     0.67                        adcq   $0, %rax
 # CHECK-NEXT:  2      2     0.67                        adcq   $0, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcq   $665536, %rax
 # CHECK-NEXT:  2      2     0.67                        adcq   $665536, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcq   $7, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcq   %rsi, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        addb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        addb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        addw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        addw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        addl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        addl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        addq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        addq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        andb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        andb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        andw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        andw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        andl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        andl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        andq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        andq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  1      3     1.00                        bsfw   %si, %di
 # CHECK-NEXT:  1      3     1.00                        bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btsw    %si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw    $7, %di
 # CHECK-NEXT:  1      1     0.50                        btcw   $7, %di
 # CHECK-NEXT:  1      1     0.50                        btrw   $7, %di
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btsw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   %esi, %edi
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btsl    %esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   $7, %edi
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btsl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   %rsi, %rdi
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btsq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   $7, %rdi
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btsq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        cbtw
 # CHECK-NEXT:  1      1     0.33                        cwtl
 # CHECK-NEXT:  1      1     0.33                        cltq
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     cpuid
 # CHECK-NEXT:  1      1     0.33                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     0.33                        decw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            decw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     0.33                        decl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            decl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        decq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            decq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decq    (%rax)
 # CHECK-NEXT:  1      25    10.00                 U     divb   %dil
 # CHECK-NEXT:  2      30    10.00   *             U     divb   (%rax)
 # CHECK-NEXT:  1      25    10.00                 U     divw   %si
@@ -1182,12 +1368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     inl    %dx, %eax
 # CHECK-NEXT:  1      1     0.33                        incb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            incb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     0.33                        incw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            incw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     0.33                        incl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            incl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        incq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            incq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incq    (%rax)
 # CHECK-NEXT:  1      100   0.33                  U     insb   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.33                  U     insw   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.33                  U     insl   %dx, %es:(%rdi)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      9     1.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     0.33                        negb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            negb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     0.33                        negw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            negw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     0.33                        negl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            negl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        negq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            negq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            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)
@@ -1251,41 +1445,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        nopq   (%r9)
 # CHECK-NEXT:  1      1     0.33                        notb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            notb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     0.33                        notw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            notw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     0.33                        notl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            notl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        notq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            notq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notq    (%r10)
 # CHECK-NEXT:  1      1     0.33                        orb    $7, %al
 # CHECK-NEXT:  1      1     0.33                        orb    $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orb    %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orb    (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        orw    $511, %ax
 # CHECK-NEXT:  1      1     0.33                        orw    $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orw    $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orw    %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orw    (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        orl    $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        orl    $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orl    $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orl    %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orl    (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        orq    $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        orq    $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orq    $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orq    %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     outb   %al, $7
 # CHECK-NEXT:  1      100   0.33                  U     outb   %al, %dx
@@ -1473,44 +1682,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.67                        sbbb   $0, %al
 # CHECK-NEXT:  2      2     0.67                        sbbb   $0, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbb   $7, %al
 # CHECK-NEXT:  2      2     0.67                        sbbb   $7, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbb   %sil, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbb   (%rax), %dil
 # CHECK-NEXT:  2      2     0.67                        sbbw   $0, %ax
 # CHECK-NEXT:  2      2     0.67                        sbbw   $0, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbw   $511, %ax
 # CHECK-NEXT:  2      2     0.67                        sbbw   $511, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbw   $7, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbw   %si, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbw   (%rax), %di
 # CHECK-NEXT:  2      2     0.67                        sbbl   $0, %eax
 # CHECK-NEXT:  2      2     0.67                        sbbl   $0, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbl   $665536, %eax
 # CHECK-NEXT:  2      2     0.67                        sbbl   $665536, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbl   $7, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbl   %esi, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbl   (%rax), %edi
 # CHECK-NEXT:  2      2     0.67                        sbbq   $0, %rax
 # CHECK-NEXT:  2      2     0.67                        sbbq   $0, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbq   $665536, %rax
 # CHECK-NEXT:  2      2     0.67                        sbbq   $665536, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbq   $7, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  2      2     0.67                  U     scasb  %es:(%rdi), %al
 # CHECK-NEXT:  2      2     0.67                  U     scasw  %es:(%rdi), %ax
@@ -1581,32 +1805,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        subb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        subb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        subw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        subw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        subl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        subl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        subq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        subq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        testb  $7, %al
 # CHECK-NEXT:  1      1     0.33                        testb  $7, %dil
@@ -1638,53 +1873,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     wrmsr
 # CHECK-NEXT:  3      2     1.00                        xaddb  %bl, %cl
 # CHECK-NEXT:  5      8     1.00    *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT:  3      2     1.00                        xaddw  %bx, %cx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xaddl  %ebx, %ecx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xaddq  %rbx, %rcx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgb  %bl, %cl
 # CHECK-NEXT:  3      6     1.00    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgw  %bx, %ax
 # CHECK-NEXT:  3      2     1.00                        xchgw  %bx, %cx
 # CHECK-NEXT:  3      6     1.00    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgl  %ebx, %eax
 # CHECK-NEXT:  3      2     1.00                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  3      6     1.00    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgq  %rbx, %rax
 # CHECK-NEXT:  3      2     1.00                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  3      6     1.00    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  1      5     0.50    *                   xlatb
 # CHECK-NEXT:  1      1     0.33                        xorb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        xorb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        xorw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        xorw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        xorl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        xorl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        xorq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        xorq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1699,111 +1953,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT: 160.00  -     597.83 239.33 234.00 605.83 328.50 328.50
+# CHECK-NEXT: 160.00  -     670.17 294.67 361.00 687.17 455.50 455.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $0, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $0, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcb     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $7, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $7, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcb     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     %sil, %dil
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcb     %sil, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $0, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $0, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcw     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $511, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $511, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcw     $511, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $7, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcw     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     %si, %di
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcw     %si, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcw     (%rax), %di
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $0, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $0, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcl     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $665536, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $665536, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcl     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $7, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcl     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     %esi, %edi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcl     %esi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $0, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $0, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcq     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $665536, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $665536, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcq     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $7, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcq     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     %rsi, %rdi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andq     (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     bsfw     %si, %di
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     bsrw     %si, %di
@@ -1827,6 +2118,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btcw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btrw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btsw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btcw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btrw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btsw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btw      $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcw     $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrw     $7, %di
@@ -1835,6 +2129,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btcw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btrw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btsw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btcw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btrw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btsw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btl      %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcl     %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrl     %esi, %edi
@@ -1843,6 +2140,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btcl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btrl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btsl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btcl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btrl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btsl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btl      $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcl     $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrl     $7, %edi
@@ -1851,6 +2151,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btcl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btrl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btsl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btcl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btrl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btsl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btq      %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrq     %rsi, %rdi
@@ -1859,6 +2162,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btcq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btrq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btsq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btcq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btrq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btsq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btq      $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcq     $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrq     $7, %rdi
@@ -1867,6 +2173,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btcq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btrq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btsq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btcq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btrq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btsq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cbtw
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cwtl
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cltq
@@ -1925,12 +2234,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cpuid
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decb     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decb    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decw     %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decw     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decw    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decl     %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decq     %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decq     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decq    (%rax)
 # CHECK-NEXT: 10.00   -     1.00    -      -      -      -      -     divb     %dil
 # CHECK-NEXT: 10.00   -     1.00    -      -      -     0.50   0.50   divb     (%rax)
 # CHECK-NEXT: 10.00   -     1.00    -      -      -      -      -     divw     %si
@@ -1982,12 +2295,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     inl      %dx, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incb     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incb    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incw     %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incw     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incw    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incl     %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incq     %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incq     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incq    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insb     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insw     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insl     %dx, %es:(%rdi)
@@ -2036,12 +2353,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   mulq     (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negb     (%r8)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negb    (%r8)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negw     %si
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negw     (%r9)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negw    (%r9)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negl     %edx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negq     %rcx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negq     (%r10)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopw     %di
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopw     (%rcx)
@@ -2051,41 +2372,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopq     (%r9)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notb     (%r8)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notb    (%r8)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notw     %si
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notw     (%r9)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notw    (%r9)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notl     %edx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notq     %rcx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notq     (%r10)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notq    (%r10)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orb      $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orb      $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orb      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orb     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orb      %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orb      %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orb     %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orb      (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orw      $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orw     $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orw      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orw      %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orw      (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orl      $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orl     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orl      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orl      %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orl      (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orq      $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orq     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orq      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orq      %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orq      (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     outb     %al, $7
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     outb     %al, %dx
@@ -2273,44 +2609,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $0, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $0, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbb     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $7, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $7, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbb     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     %sil, %dil
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbb     %sil, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $0, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $0, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbw     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $511, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $511, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbw     $511, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $7, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbw     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     %si, %di
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbw     %si, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbw     (%rax), %di
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $0, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $0, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbl     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $665536, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $665536, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbl     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $7, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbl     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     %esi, %edi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbl     %esi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $0, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $0, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbq     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $665536, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $665536, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbq     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $7, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbq     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     %rsi, %rdi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67    -      -     scasb    %es:(%rdi), %al
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67    -      -     scasw    %es:(%rdi), %ax
@@ -2381,32 +2732,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     testb    $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     testb    $7, %dil
@@ -2438,51 +2800,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     wrmsr
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddb    %bl, %cl
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddb    %bl, (%rcx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddb   %bl, (%rcx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddw    %bx, %cx
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddw    %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddl    %ebx, %ecx
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddl    %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddq    %rbx, %rcx
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddq    %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddq   %rax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgb    %bl, %cl
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgb    %bl, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgb   %bl, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgw    %bx, %ax
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgw    %bx, %cx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgw    %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgl    %ebx, %eax
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgl    %ebx, %ecx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgl    %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgq    %rbx, %rax
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgq    %rbx, %rcx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgq    %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgq   %rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   xlatb
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorq     (%rax), %rdi
index eb1d9e323b64d6c0b0ab393d5c5d2d366ff3718d..7f629b5817f929be30a2653625508dc818a5ad32 100644 (file)
 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
@@ -254,12 +309,16 @@ 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.50                        adcb   $0, %al
 # CHECK-NEXT:  2      2     0.50                        adcb   $0, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcb   $7, %al
 # CHECK-NEXT:  2      2     0.50                        adcb   $7, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcb   %sil, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  3      7     0.50    *                   adcb   (%rax), %dil
 # CHECK-NEXT:  2      2     0.50                        adcw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        adcw   $0, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcw   $511, %ax
 # CHECK-NEXT:  2      2     0.50                        adcw   $511, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcw   $7, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcw   %si, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  3      7     0.50    *                   adcw   (%rax), %di
 # CHECK-NEXT:  2      2     0.50                        adcl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        adcl   $0, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcl   $665536, %eax
 # CHECK-NEXT:  2      2     0.50                        adcl   $665536, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcl   $7, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcl   %esi, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  3      7     0.50    *                   adcl   (%rax), %edi
 # CHECK-NEXT:  2      2     0.50                        adcq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        adcq   $0, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcq   $665536, %rax
 # CHECK-NEXT:  2      2     0.50                        adcq   $665536, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcq   $7, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcq   %rsi, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  3      7     0.50    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        addb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        addb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        addw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        addw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        addl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        addl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        addq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        addq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        andb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        andb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        andw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        andw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        andl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        andl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        andq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        andq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  1      3     1.00                        bsfw   %si, %di
 # CHECK-NEXT:  1      3     1.00                        bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  11     1     2.75    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  11     1     2.75    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  11     1     2.75    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  11     1     2.75    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  11     1     2.75    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  11     1     2.75    *      *            lock           btsw    %si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw    $7, %di
 # CHECK-NEXT:  1      1     0.50                        btcw   $7, %di
 # CHECK-NEXT:  1      1     0.50                        btrw   $7, %di
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btsw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   %esi, %edi
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  11     1     2.75    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  11     1     2.75    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  11     1     2.75    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  11     1     2.75    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  11     1     2.75    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  11     1     2.75    *      *            lock           btsl    %esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   $7, %edi
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btsl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   %rsi, %rdi
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  11     1     2.75    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  11     1     2.75    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  11     1     2.75    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  11     1     2.75    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  11     1     2.75    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  11     1     2.75    *      *            lock           btsq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   $7, %rdi
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            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
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  8      18    2.00                  U     cpuid
 # CHECK-NEXT:  1      1     0.25                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            decw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            decl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            decq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decq    (%rax)
 # CHECK-NEXT:  9      22    1.00                  U     divb   %dil
 # CHECK-NEXT:  2      29    10.00   *             U     divb   (%rax)
 # CHECK-NEXT:  32     98    8.00                  U     divw   %si
@@ -1182,12 +1368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  23     35    5.00                  U     inl    %dx, %eax
 # CHECK-NEXT:  1      1     0.25                        incb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            incb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            incw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            incl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            incq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incq    (%rax)
 # CHECK-NEXT:  8      21    1.25                  U     insb   %dx, %es:(%rdi)
 # CHECK-NEXT:  8      21    1.25                  U     insw   %dx, %es:(%rdi)
 # CHECK-NEXT:  8      21    1.25                  U     insl   %dx, %es:(%rdi)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      9     1.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     0.25                        negb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            negb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     0.25                        negw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            negw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     0.25                        negl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            negl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        negq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            negq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            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)
@@ -1251,41 +1445,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        nopq   (%r9)
 # CHECK-NEXT:  1      1     0.25                        notb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            notb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     0.25                        notw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            notw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     0.25                        notl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            notl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        notq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            notq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notq    (%r10)
 # CHECK-NEXT:  1      1     0.25                        orb    $7, %al
 # CHECK-NEXT:  1      1     0.25                        orb    $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orb    %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orb    (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        orw    $511, %ax
 # CHECK-NEXT:  1      1     0.25                        orw    $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw    $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw    %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orw    (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        orl    $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        orl    $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl    $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl    %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orl    (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        orq    $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        orq    $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq    $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq    %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  23     36    5.00                  U     outb   %al, $7
 # CHECK-NEXT:  23     36    5.00                  U     outb   %al, %dx
@@ -1473,44 +1682,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.50                        sbbb   $0, %al
 # CHECK-NEXT:  2      2     0.50                        sbbb   $0, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbb   $7, %al
 # CHECK-NEXT:  2      2     0.50                        sbbb   $7, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbb   %sil, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  3      7     0.50    *                   sbbb   (%rax), %dil
 # CHECK-NEXT:  2      2     0.50                        sbbw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        sbbw   $0, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbw   $511, %ax
 # CHECK-NEXT:  2      2     0.50                        sbbw   $511, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbw   $7, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbw   %si, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  3      7     0.50    *                   sbbw   (%rax), %di
 # CHECK-NEXT:  2      2     0.50                        sbbl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        sbbl   $0, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbl   $665536, %eax
 # CHECK-NEXT:  2      2     0.50                        sbbl   $665536, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbl   $7, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbl   %esi, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  3      7     0.50    *                   sbbl   (%rax), %edi
 # CHECK-NEXT:  2      2     0.50                        sbbq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        sbbq   $0, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbq   $665536, %rax
 # CHECK-NEXT:  2      2     0.50                        sbbq   $665536, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbq   $7, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  3      7     0.50    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  3      7     0.50                  U     scasb  %es:(%rdi), %al
 # CHECK-NEXT:  3      7     0.50                  U     scasw  %es:(%rdi), %ax
@@ -1581,32 +1805,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        subb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        subb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        subw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        subw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        subl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        subl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        subq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        subq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        testb  $7, %al
 # CHECK-NEXT:  1      1     0.25                        testb  $7, %dil
@@ -1638,53 +1873,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     wrmsr
 # CHECK-NEXT:  3      2     0.75                        xaddb  %bl, %cl
 # CHECK-NEXT:  5      8     1.00    *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT:  3      2     0.75                        xaddw  %bx, %cx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xaddl  %ebx, %ecx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xaddq  %rbx, %rcx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgb  %bl, %cl
 # CHECK-NEXT:  6      9     1.00    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgw  %bx, %ax
 # CHECK-NEXT:  3      2     0.75                        xchgw  %bx, %cx
 # CHECK-NEXT:  6      9     1.00    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgl  %ebx, %eax
 # CHECK-NEXT:  3      2     0.75                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  6      9     1.00    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgq  %rbx, %rax
 # CHECK-NEXT:  3      2     0.75                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  6      9     1.00    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  3      7     0.75    *                   xlatb
 # CHECK-NEXT:  1      1     0.25                        xorb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        xorb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        xorw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        xorw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        xorl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        xorl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        xorq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        xorq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1701,111 +1955,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT: 80.00   -     578.75 372.75 273.17 273.17 213.00 287.25 641.25 83.67
+# CHECK-NEXT: 80.00   -     643.50 403.00 371.50 371.50 331.00 317.50 706.00 123.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcb       $0, %al
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcb       $0, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcb       $7, %al
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcb       $7, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcb       %sil, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       %sil, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     adcb       (%rax), %dil
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcw       $0, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $0, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcw       $511, %ax
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcw       $511, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $511, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcw       $7, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcw       %si, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       %si, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     adcw       (%rax), %di
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcl       $0, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $0, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcl       $665536, %eax
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcl       $665536, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcl       $7, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcl       %esi, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       %esi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     adcl       (%rax), %edi
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcq       $0, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $0, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcq       $665536, %rax
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcq       $665536, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcq       $7, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcq       %rsi, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     andq       (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     bsfw       %si, %di
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     bsrw       %si, %di
@@ -1829,6 +2120,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     btcw       %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     btrw       %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     btsw       %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     lock               btcw    %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     lock               btrw    %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     lock               btsw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btw        $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcw       $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrw       $7, %di
@@ -1837,6 +2131,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcw       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrw       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btsw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btl        %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcl       %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrl       %esi, %edi
@@ -1845,6 +2142,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     btcl       %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     btrl       %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     btsl       %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     lock               btcl    %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     lock               btrl    %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     lock               btsl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btl        $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcl       $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrl       $7, %edi
@@ -1853,6 +2153,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcl       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrl       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btsl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btq        %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrq       %rsi, %rdi
@@ -1861,6 +2164,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     btcq       %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     btrq       %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     btsq       %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     lock               btcq    %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     lock               btrq    %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     lock               btsq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btq        $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcq       $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrq       $7, %rdi
@@ -1869,6 +2175,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcq       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrq       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   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
@@ -1927,12 +2236,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.75   1.25    -      -      -     2.25   2.75    -     cpuid
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decb       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decb    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decw       %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decw       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decw    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decl       %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decq       %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decq       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decq    (%rax)
 # CHECK-NEXT:  -      -     1.00   1.00    -      -      -     1.00   1.00    -     divb       %dil
 # CHECK-NEXT: 10.00   -     1.00    -     0.50   0.50    -      -      -      -     divb       (%rax)
 # CHECK-NEXT:  -      -     10.25  10.25   -      -      -     5.75   5.75    -     divw       %si
@@ -1984,12 +2297,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     4.50   2.50   1.50   1.50    -     3.50   9.50    -     inl        %dx, %eax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incb       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incb    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incw       %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incw       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incw    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incl       %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incq       %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incq       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incq    (%rax)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insb       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insw       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insl       %dx, %es:(%rdi)
@@ -2038,12 +2355,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -      -     1.00    -     mulq       (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negb       (%r8)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negb    (%r8)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negw       %si
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negw       (%r9)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negw    (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negl       %edx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negq       %rcx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negq       (%r10)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopw       %di
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopw       (%rcx)
@@ -2053,41 +2374,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopq       (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notb       (%r8)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notb    (%r8)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notw       %si
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notw       (%r9)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notw    (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notl       %edx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notq       %rcx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notq       (%r10)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orb        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orb     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orb        %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orb        %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orb     %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orw        $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orw        %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orl        $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orl        %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orq        $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orq        %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     orq        (%rax), %rdi
 # CHECK-NEXT:  -      -     4.50   2.50   1.33   1.33    -     3.50   9.50   0.33   outb       %al, $7
 # CHECK-NEXT:  -      -     4.50   2.50   1.33   1.33    -     3.50   9.50   0.33   outb       %al, %dx
@@ -2275,44 +2611,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbb       $0, %al
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbb       $0, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbb       $7, %al
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbb       $7, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbb       %sil, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       %sil, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     sbbb       (%rax), %dil
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbw       $0, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $0, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbw       $511, %ax
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbw       $511, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $511, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbw       $7, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbw       %si, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       %si, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     sbbw       (%rax), %di
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbl       $0, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $0, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbl       $665536, %eax
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbl       $665536, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbl       $7, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbl       %esi, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       %esi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     sbbl       (%rax), %edi
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbq       $0, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $0, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbq       $665536, %rax
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbq       $665536, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbq       $7, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbq       %rsi, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25   0.50   0.50    -     0.25   0.75    -     sbbq       (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     scasb      %es:(%rdi), %al
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     scasw      %es:(%rdi), %ax
@@ -2383,32 +2734,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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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
@@ -2440,51 +2802,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     wrmsr
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddb      %bl, %cl
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddb      %bl, (%rcx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddb   %bl, (%rcx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddw      %bx, %cx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddw      %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddl      %ebx, %ecx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddl      %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddq      %rbx, %rcx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddq      %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddq   %rax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgb      %bl, %cl
 # CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   xchgb      %bl, (%rbx)
+# CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   lock               xchgb   %bl, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgw      %bx, %ax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgw      %bx, %cx
 # CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   xchgw      %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   lock               xchgw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgl      %ebx, %eax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgl      %ebx, %ecx
 # CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   xchgl      %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   lock               xchgl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgq      %rbx, %rax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgq      %rbx, %rcx
 # CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   xchgq      %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.75   0.75   0.83   0.83   1.00   0.75   0.75   0.33   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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     xorq       (%rax), %rdi
index 13081a1d6b9567bb6e069a6cf3104221b4acb717..b4ede6c2bf5f4ce5c0cb7cce319a37d736ea2212 100644 (file)
 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
@@ -254,12 +309,16 @@ 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        adcb   $0, %al
 # CHECK-NEXT:  1      1     0.50                        adcb   $0, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcb    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        adcb   $7, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcb   %sil, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   adcb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        adcw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        adcw   $0, %di
 # CHECK-NEXT:  2      5     2.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcw    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        adcw   $511, %di
 # CHECK-NEXT:  2      5     2.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   $7, %di
 # CHECK-NEXT:  2      5     2.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   %si, %di
 # CHECK-NEXT:  2      5     2.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   adcw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        adcl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        adcl   $0, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcl    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        adcl   $665536, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   $7, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   %esi, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   adcl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        adcq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        adcq   $0, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcq    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        adcq   $665536, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   $7, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   %rsi, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        addb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        addb   $7, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addb   %sil, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   addb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        addw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        addw   $511, %di
 # CHECK-NEXT:  2      5     2.00    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addw   $7, %di
 # CHECK-NEXT:  2      5     2.00    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addw   %si, %di
 # CHECK-NEXT:  2      5     2.00    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   addw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        addl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        addl   $665536, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addl   $7, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addl   %esi, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   addl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        addq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        addq   $665536, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addq   $7, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        addq   %rsi, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   addq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        andb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        andb   $7, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andb   %sil, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   andb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        andw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        andw   $511, %di
 # CHECK-NEXT:  2      5     2.00    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andw   $7, %di
 # CHECK-NEXT:  2      5     2.00    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andw   %si, %di
 # CHECK-NEXT:  2      5     2.00    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   andw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        andl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        andl   $665536, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andl   $7, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andl   %esi, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   andl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        andq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        andq   $665536, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andq   $7, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        andq   %rsi, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  10     10    10.00                       bsfw   %si, %di
 # CHECK-NEXT:  10     10    10.00                       bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      4     2.00    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btsw    %si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw    $7, %di
 # CHECK-NEXT:  1      1     0.50                        btcw   $7, %di
 # CHECK-NEXT:  1      1     0.50                        btrw   $7, %di
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      4     2.00    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btsw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   %esi, %edi
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      4     2.00    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btsl    %esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   $7, %edi
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      4     2.00    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btsl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   %rsi, %rdi
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      4     2.00    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btsq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   $7, %rdi
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      4     2.00    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  2      4     2.00    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           btsq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        cbtw
 # CHECK-NEXT:  1      1     0.50                        cwtl
 # CHECK-NEXT:  1      1     0.50                        cltq
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   1.00                  U     cpuid
 # CHECK-NEXT:  1      1     0.50                        decb   %dil
 # CHECK-NEXT:  2      5     2.00    *      *            decb   (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     0.50                        decw   %di
 # CHECK-NEXT:  2      5     2.00    *      *            decw   (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     0.50                        decl   %edi
 # CHECK-NEXT:  2      5     2.00    *      *            decl   (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        decq   %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            decq   (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           decq    (%rax)
 # CHECK-NEXT:  1      25    25.00                 U     divb   %dil
 # CHECK-NEXT:  1      29    25.00   *             U     divb   (%rax)
 # CHECK-NEXT:  1      25    25.00                 U     divw   %si
@@ -1182,12 +1368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   1.00                  U     inl    %dx, %eax
 # CHECK-NEXT:  1      1     0.50                        incb   %dil
 # CHECK-NEXT:  2      5     2.00    *      *            incb   (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     0.50                        incw   %di
 # CHECK-NEXT:  2      5     2.00    *      *            incw   (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     0.50                        incl   %edi
 # CHECK-NEXT:  2      5     2.00    *      *            incl   (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        incq   %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            incq   (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           incq    (%rax)
 # CHECK-NEXT:  1      100   1.00                  U     insb   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   1.00                  U     insw   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   1.00                  U     insl   %dx, %es:(%rdi)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      6     1.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     0.50                        negb   %dil
 # CHECK-NEXT:  2      5     2.00    *      *            negb   (%r8)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     0.50                        negw   %si
 # CHECK-NEXT:  2      5     2.00    *      *            negw   (%r9)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     0.50                        negl   %edx
 # CHECK-NEXT:  2      5     2.00    *      *            negl   (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        negq   %rcx
 # CHECK-NEXT:  2      5     2.00    *      *            negq   (%r10)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           negq    (%r10)
 # CHECK-NEXT:  1      1     0.50                        nop
 # CHECK-NEXT:  1      1     0.50                        nopw   %di
 # CHECK-NEXT:  1      1     0.50                        nopw   (%rcx)
@@ -1251,41 +1445,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        nopq   (%r9)
 # CHECK-NEXT:  1      1     0.50                        notb   %dil
 # CHECK-NEXT:  2      5     2.00    *      *            notb   (%r8)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     0.50                        notw   %si
 # CHECK-NEXT:  2      5     2.00    *      *            notw   (%r9)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     0.50                        notl   %edx
 # CHECK-NEXT:  2      5     2.00    *      *            notl   (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     0.50                        notq   %rcx
 # CHECK-NEXT:  2      5     2.00    *      *            notq   (%r10)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           notq    (%r10)
 # CHECK-NEXT:  1      1     0.50                        orb    $7, %al
 # CHECK-NEXT:  1      1     0.50                        orb    $7, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orb    %sil, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   orb    (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        orw    $511, %ax
 # CHECK-NEXT:  1      1     0.50                        orw    $511, %di
 # CHECK-NEXT:  2      5     2.00    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orw    $7, %di
 # CHECK-NEXT:  2      5     2.00    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orw    %si, %di
 # CHECK-NEXT:  2      5     2.00    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   orw    (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        orl    $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        orl    $665536, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orl    $7, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orl    %esi, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   orl    (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        orq    $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        orq    $665536, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orq    $7, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        orq    %rsi, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  1      100   1.00                  U     outb   %al, $7
 # CHECK-NEXT:  1      100   1.00                  U     outb   %al, %dx
@@ -1473,44 +1682,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        sbbb   $0, %al
 # CHECK-NEXT:  1      1     0.50                        sbbb   $0, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbb    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        sbbb   $7, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbb   %sil, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   sbbb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        sbbw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        sbbw   $0, %di
 # CHECK-NEXT:  2      5     2.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbw    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        sbbw   $511, %di
 # CHECK-NEXT:  2      5     2.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   $7, %di
 # CHECK-NEXT:  2      5     2.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   %si, %di
 # CHECK-NEXT:  2      5     2.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   sbbw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        sbbl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        sbbl   $0, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbl    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        sbbl   $665536, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   $7, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   %esi, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   sbbl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        sbbq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        sbbq   $0, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbq    $0, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        sbbq   $665536, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   $7, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  1      100   1.00                  U     scasb  %es:(%rdi), %al
 # CHECK-NEXT:  1      100   1.00                  U     scasw  %es:(%rdi), %ax
@@ -1581,32 +1805,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        subb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        subb   $7, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subb   %sil, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   subb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        subw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        subw   $511, %di
 # CHECK-NEXT:  2      5     2.00    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subw   $7, %di
 # CHECK-NEXT:  2      5     2.00    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subw   %si, %di
 # CHECK-NEXT:  2      5     2.00    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   subw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        subl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        subl   $665536, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subl   $7, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subl   %esi, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   subl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        subq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        subq   $665536, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subq   $7, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        subq   %rsi, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.50                        testb  $7, %al
 # CHECK-NEXT:  1      1     0.50                        testb  $7, %dil
@@ -1638,53 +1873,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   1.00                  U     wrmsr
 # CHECK-NEXT:  1      1     0.50                        xaddb  %bl, %cl
 # CHECK-NEXT:  2      4     2.00    *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT:  1      1     0.50                        xaddw  %bx, %cx
 # CHECK-NEXT:  2      4     2.00    *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xaddl  %ebx, %ecx
 # CHECK-NEXT:  2      4     2.00    *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xaddq  %rbx, %rcx
 # CHECK-NEXT:  2      4     2.00    *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xchgb  %bl, %cl
 # CHECK-NEXT:  2      4     2.00    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xchgw  %bx, %ax
 # CHECK-NEXT:  1      1     0.50                        xchgw  %bx, %cx
 # CHECK-NEXT:  2      4     2.00    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xchgl  %ebx, %eax
 # CHECK-NEXT:  1      1     0.50                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  2      4     2.00    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  1      1     0.50                        xchgq  %rbx, %rax
 # CHECK-NEXT:  1      1     0.50                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  2      4     2.00    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  2      4     2.00    *      *            lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  1      3     1.00    *                   xlatb
 # CHECK-NEXT:  1      1     0.50                        xorb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        xorb   $7, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorb   %sil, %dil
 # CHECK-NEXT:  2      5     2.00    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   xorb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        xorw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        xorw   $511, %di
 # CHECK-NEXT:  2      5     2.00    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorw   $7, %di
 # CHECK-NEXT:  2      5     2.00    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorw   %si, %di
 # CHECK-NEXT:  2      5     2.00    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   xorw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        xorl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        xorl   $665536, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorl   $7, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorl   %esi, %edi
 # CHECK-NEXT:  2      5     2.00    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   xorl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        xorq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        xorq   $665536, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorq   $7, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        xorq   %rsi, %rdi
 # CHECK-NEXT:  2      5     2.00    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     2.00    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  1      4     1.00    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1699,111 +1953,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]
-# CHECK-NEXT: 400.00  -      -     49.00   -     563.50 405.50 581.00
+# CHECK-NEXT: 400.00  -      -     49.00   -     627.00 469.00 835.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    Instructions:
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcb     $0, %al
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcb     $0, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcb     $0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcb    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcb     $7, %al
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcb     $7, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcb     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcb     %sil, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcb     %sil, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcb    %sil, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   adcb     (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcw     $0, %ax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcw     $0, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcw     $0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcw    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcw     $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcw     $511, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcw     $511, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcw     $7, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcw     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcw     %si, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcw     %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcw    %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   adcw     (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcl     $0, %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcl     $0, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcl     $0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcl    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcl     $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcl     $665536, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcl     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcl     $7, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcl     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcl     %esi, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcl     %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcl    %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   adcl     (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcq     $0, %rax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcq     $0, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcq     $0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcq    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcq     $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcq     $665536, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcq     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcq     $7, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcq     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     adcq     %rsi, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   adcq     %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             adcq    %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   adcq     (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addb     $7, %al
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addb     $7, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   addb     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             addb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addb     %sil, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   addb     %sil, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             addb    %sil, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   addb     (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addw     $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addw     $511, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   addw     $511, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             addw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addw     $7, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   addw     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             addw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addw     %si, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   addw     %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             addw    %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   addw     (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addl     $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addl     $665536, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   addl     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             addl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addl     $7, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   addl     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             addl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addl     %esi, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   addl     %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             addl    %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   addl     (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addq     $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addq     $665536, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   addq     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             addq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addq     $7, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   addq     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             addq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     addq     %rsi, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   addq     %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             addq    %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   addq     (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andb     $7, %al
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andb     $7, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   andb     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             andb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andb     %sil, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   andb     %sil, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             andb    %sil, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   andb     (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andw     $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andw     $511, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   andw     $511, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             andw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andw     $7, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   andw     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             andw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andw     %si, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   andw     %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             andw    %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   andw     (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andl     $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andl     $665536, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   andl     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             andl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andl     $7, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   andl     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             andl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andl     %esi, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   andl     %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             andl    %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   andl     (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andq     $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andq     $665536, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   andq     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             andq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andq     $7, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   andq     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             andq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     andq     %rsi, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   andq     %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             andq    %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   andq     (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     10.00  10.00   -     bsfw     %si, %di
 # CHECK-NEXT:  -      -      -      -      -     10.00  10.00   -     bsrw     %si, %di
@@ -1827,6 +2118,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btcw     %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btrw     %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btsw     %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btcw    %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btrw    %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btsw    %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btw      $7, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btcw     $7, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btrw     $7, %di
@@ -1835,6 +2129,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btcw     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btrw     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btsw     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btcw    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btrw    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btsw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btl      %esi, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btcl     %esi, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btrl     %esi, %edi
@@ -1843,6 +2140,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btcl     %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btrl     %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btsl     %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btcl    %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btrl    %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btsl    %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btl      $7, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btcl     $7, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btrl     $7, %edi
@@ -1851,6 +2151,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btcl     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btrl     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btsl     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btcl    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btrl    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btsl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btq      %rsi, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btcq     %rsi, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btrq     %rsi, %rdi
@@ -1859,6 +2162,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btcq     %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btrq     %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btsq     %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btcq    %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btrq    %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btsq    %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btq      $7, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btcq     $7, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     btrq     $7, %rdi
@@ -1867,6 +2173,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btcq     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btrq     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   btsq     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btcq    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btrq    $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             btsq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     cbtw
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     cwtl
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     cltq
@@ -1925,12 +2234,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     cpuid
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     decb     %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   decb     (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             decb    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     decw     %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   decw     (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             decw    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     decl     %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   decl     (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             decl    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     decq     %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   decq     (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             decq    (%rax)
 # CHECK-NEXT: 25.00   -      -      -      -     0.50   0.50    -     divb     %dil
 # CHECK-NEXT: 25.00   -      -      -      -     0.50   0.50   1.00   divb     (%rax)
 # CHECK-NEXT: 25.00   -      -      -      -     0.50   0.50    -     divw     %si
@@ -1982,12 +2295,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     inl      %dx, %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     incb     %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   incb     (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             incb    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     incw     %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   incw     (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             incw    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     incl     %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   incl     (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             incl    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     incq     %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   incq     (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             incq    (%rax)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     insb     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     insw     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     insl     %dx, %es:(%rdi)
@@ -2036,12 +2353,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -     1.00   1.00   mulq     (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     negb     %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   negb     (%r8)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             negb    (%r8)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     negw     %si
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   negw     (%r9)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             negw    (%r9)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     negl     %edx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   negl     (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             negl    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     negq     %rcx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   negq     (%r10)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             negq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopw     %di
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopw     (%rcx)
@@ -2051,41 +2372,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopq     (%r9)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     notb     %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   notb     (%r8)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             notb    (%r8)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     notw     %si
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   notw     (%r9)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             notw    (%r9)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     notl     %edx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   notl     (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             notl    (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     notq     %rcx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   notq     (%r10)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             notq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orb      $7, %al
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orb      $7, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   orb      $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             orb     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orb      %sil, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   orb      %sil, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             orb     %sil, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   orb      (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orw      $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orw      $511, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   orw      $511, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             orw     $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orw      $7, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   orw      $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             orw     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orw      %si, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   orw      %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             orw     %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   orw      (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orl      $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orl      $665536, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   orl      $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             orl     $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orl      $7, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   orl      $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             orl     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orl      %esi, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   orl      %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             orl     %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   orl      (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orq      $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orq      $665536, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   orq      $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             orq     $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orq      $7, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   orq      $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             orq     $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     orq      %rsi, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   orq      %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             orq     %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   orq      (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     outb     %al, $7
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     outb     %al, %dx
@@ -2273,44 +2609,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbb     $0, %al
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbb     $0, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbb     $0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbb    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbb     $7, %al
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbb     $7, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbb     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbb     %sil, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbb     %sil, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbb    %sil, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   sbbb     (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbw     $0, %ax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbw     $0, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbw     $0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbw    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbw     $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbw     $511, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbw     $511, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbw     $7, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbw     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbw     %si, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbw     %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbw    %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   sbbw     (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbl     $0, %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbl     $0, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbl     $0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbl    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbl     $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbl     $665536, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbl     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbl     $7, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbl     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbl     %esi, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbl     %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbl    %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   sbbl     (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbq     $0, %rax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbq     $0, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbq     $0, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbq    $0, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbq     $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbq     $665536, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbq     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbq     $7, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbq     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     sbbq     %rsi, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   sbbq     %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             sbbq    %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   sbbq     (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     scasb    %es:(%rdi), %al
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     scasw    %es:(%rdi), %ax
@@ -2381,32 +2732,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subb     $7, %al
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subb     $7, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   subb     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             subb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subb     %sil, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   subb     %sil, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             subb    %sil, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   subb     (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subw     $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subw     $511, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   subw     $511, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             subw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subw     $7, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   subw     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             subw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subw     %si, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   subw     %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             subw    %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   subw     (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subl     $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subl     $665536, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   subl     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             subl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subl     $7, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   subl     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             subl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subl     %esi, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   subl     %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             subl    %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   subl     (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subq     $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subq     $665536, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   subq     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             subq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subq     $7, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   subq     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             subq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     subq     %rsi, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   subq     %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             subq    %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   subq     (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     testb    $7, %al
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     testb    $7, %dil
@@ -2438,51 +2800,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     wrmsr
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xaddb    %bl, %cl
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xaddb    %bl, (%rcx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xaddb   %bl, (%rcx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xaddw    %bx, %cx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xaddw    %ax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xaddw   %ax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xaddl    %ebx, %ecx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xaddl    %eax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xaddl   %eax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xaddq    %rbx, %rcx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xaddq    %rax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xaddq   %rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xchgb    %bl, %cl
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xchgb    %bl, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xchgb   %bl, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xchgw    %bx, %ax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xchgw    %bx, %cx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xchgw    %ax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xchgw   %ax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xchgl    %ebx, %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xchgl    %ebx, %ecx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xchgl    %eax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xchgl   %eax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xchgq    %rbx, %rax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xchgq    %rbx, %rcx
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xchgq    %rax, (%rbx)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xchgq   %rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -      -     1.00   xlatb
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorb     $7, %al
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorb     $7, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xorb     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xorb    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorb     %sil, %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xorb     %sil, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xorb    %sil, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   xorb     (%rax), %dil
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorw     $511, %ax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorw     $511, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xorw     $511, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xorw    $511, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorw     $7, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xorw     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xorw    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorw     %si, %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xorw     %si, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xorw    %si, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   xorw     (%rax), %di
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorl     $665536, %eax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorl     $665536, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xorl     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xorl    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorl     $7, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xorl     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xorl    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorl     %esi, %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xorl     %esi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xorl    %esi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   xorl     (%rax), %edi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorq     $665536, %rax
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorq     $665536, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xorq     $665536, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xorq    $665536, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorq     $7, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xorq     $7, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xorq    $7, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50    -     xorq     %rsi, %rdi
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   xorq     %rsi, (%rax)
+# CHECK-NEXT:  -      -      -      -      -     0.50   0.50   2.00   lock             xorq    %rsi, (%rax)
 # CHECK-NEXT:  -      -      -      -      -     0.50   0.50   1.00   xorq     (%rax), %rdi
index 937bce786fd7f965737a6b7e862a1f29fb046364..70850ef0e23d86754b8ff7380775e013dde0e18f 100644 (file)
 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
@@ -254,12 +309,16 @@ 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.67                        adcb   $0, %al
 # CHECK-NEXT:  2      2     0.67                        adcb   $0, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcb   $7, %al
 # CHECK-NEXT:  2      2     0.67                        adcb   $7, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcb   %sil, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcb   (%rax), %dil
 # CHECK-NEXT:  2      2     0.67                        adcw   $0, %ax
 # CHECK-NEXT:  2      2     0.67                        adcw   $0, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcw   $511, %ax
 # CHECK-NEXT:  2      2     0.67                        adcw   $511, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcw   $7, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcw   %si, %di
 # CHECK-NEXT:  6      9     1.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcw   (%rax), %di
 # CHECK-NEXT:  2      2     0.67                        adcl   $0, %eax
 # CHECK-NEXT:  2      2     0.67                        adcl   $0, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcl   $665536, %eax
 # CHECK-NEXT:  2      2     0.67                        adcl   $665536, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcl   $7, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcl   %esi, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcl   (%rax), %edi
 # CHECK-NEXT:  2      2     0.67                        adcq   $0, %rax
 # CHECK-NEXT:  2      2     0.67                        adcq   $0, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcq   $665536, %rax
 # CHECK-NEXT:  2      2     0.67                        adcq   $665536, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcq   $7, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        adcq   %rsi, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        addb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        addb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        addw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        addw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        addl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        addl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        addq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        addq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        addq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        andb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        andb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        andw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        andw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        andl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        andl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        andq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        andq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        andq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  1      3     1.00                        bsfw   %si, %di
 # CHECK-NEXT:  1      3     1.00                        bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btsw    %si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw    $7, %di
 # CHECK-NEXT:  1      1     0.50                        btcw   $7, %di
 # CHECK-NEXT:  1      1     0.50                        btrw   $7, %di
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btsw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   %esi, %edi
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btsl    %esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   $7, %edi
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btsl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   %rsi, %rdi
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  6      9     1.00    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           btsq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   $7, %rdi
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      7     1.00    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  4      7     1.00    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  4      7     1.00    *      *            lock           btsq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        cbtw
 # CHECK-NEXT:  1      1     0.33                        cwtl
 # CHECK-NEXT:  1      1     0.33                        cltq
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     cpuid
 # CHECK-NEXT:  1      1     0.33                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     0.33                        decw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            decw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     0.33                        decl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            decl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        decq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            decq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decq    (%rax)
 # CHECK-NEXT:  1      25    10.00                 U     divb   %dil
 # CHECK-NEXT:  2      30    10.00   *             U     divb   (%rax)
 # CHECK-NEXT:  1      25    10.00                 U     divw   %si
@@ -1182,12 +1368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     inl    %dx, %eax
 # CHECK-NEXT:  1      1     0.33                        incb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            incb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     0.33                        incw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            incw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     0.33                        incl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            incl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        incq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            incq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incq    (%rax)
 # CHECK-NEXT:  1      100   0.33                  U     insb   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.33                  U     insw   %dx, %es:(%rdi)
 # CHECK-NEXT:  1      100   0.33                  U     insl   %dx, %es:(%rdi)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      9     1.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     0.33                        negb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            negb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     0.33                        negw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            negw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     0.33                        negl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            negl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        negq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            negq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            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)
@@ -1251,41 +1445,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        nopq   (%r9)
 # CHECK-NEXT:  1      1     0.33                        notb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            notb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     0.33                        notw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            notw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     0.33                        notl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            notl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     0.33                        notq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            notq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notq    (%r10)
 # CHECK-NEXT:  1      1     0.33                        orb    $7, %al
 # CHECK-NEXT:  1      1     0.33                        orb    $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orb    %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orb    (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        orw    $511, %ax
 # CHECK-NEXT:  1      1     0.33                        orw    $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orw    $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orw    %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orw    (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        orl    $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        orl    $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orl    $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orl    %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orl    (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        orq    $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        orq    $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orq    $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        orq    %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     outb   %al, $7
 # CHECK-NEXT:  1      100   0.33                  U     outb   %al, %dx
@@ -1473,44 +1682,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.67                        sbbb   $0, %al
 # CHECK-NEXT:  2      2     0.67                        sbbb   $0, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbb   $7, %al
 # CHECK-NEXT:  2      2     0.67                        sbbb   $7, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbb   %sil, %dil
 # CHECK-NEXT:  6      9     1.00    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbb   (%rax), %dil
 # CHECK-NEXT:  2      2     0.67                        sbbw   $0, %ax
 # CHECK-NEXT:  2      2     0.67                        sbbw   $0, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbw   $511, %ax
 # CHECK-NEXT:  2      2     0.67                        sbbw   $511, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbw   $7, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbw   %si, %di
 # CHECK-NEXT:  6      9     1.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbw   (%rax), %di
 # CHECK-NEXT:  2      2     0.67                        sbbl   $0, %eax
 # CHECK-NEXT:  2      2     0.67                        sbbl   $0, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbl   $665536, %eax
 # CHECK-NEXT:  2      2     0.67                        sbbl   $665536, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbl   $7, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbl   %esi, %edi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbl   (%rax), %edi
 # CHECK-NEXT:  2      2     0.67                        sbbq   $0, %rax
 # CHECK-NEXT:  2      2     0.67                        sbbq   $0, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbq   $665536, %rax
 # CHECK-NEXT:  2      2     0.67                        sbbq   $665536, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbq   $7, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  2      2     0.67                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  6      9     1.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  6      9     1.00    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  3      7     0.67    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  2      2     0.67                  U     scasb  %es:(%rdi), %al
 # CHECK-NEXT:  2      2     0.67                  U     scasw  %es:(%rdi), %ax
@@ -1581,32 +1805,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        subb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        subb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        subw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        subw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        subl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        subl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        subq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        subq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        subq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.33                        testb  $7, %al
 # CHECK-NEXT:  1      1     0.33                        testb  $7, %dil
@@ -1638,53 +1873,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.33                  U     wrmsr
 # CHECK-NEXT:  3      2     1.00                        xaddb  %bl, %cl
 # CHECK-NEXT:  5      8     1.00    *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT:  3      2     1.00                        xaddw  %bx, %cx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xaddl  %ebx, %ecx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xaddq  %rbx, %rcx
 # CHECK-NEXT:  5      8     1.00    *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  5      8     1.00    *      *            lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgb  %bl, %cl
 # CHECK-NEXT:  3      6     1.00    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgw  %bx, %ax
 # CHECK-NEXT:  3      2     1.00                        xchgw  %bx, %cx
 # CHECK-NEXT:  3      6     1.00    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgl  %ebx, %eax
 # CHECK-NEXT:  3      2     1.00                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  3      6     1.00    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     1.00                        xchgq  %rbx, %rax
 # CHECK-NEXT:  3      2     1.00                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  3      6     1.00    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  1      5     0.50    *                   xlatb
 # CHECK-NEXT:  1      1     0.33                        xorb   $7, %al
 # CHECK-NEXT:  1      1     0.33                        xorb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.33                        xorw   $511, %ax
 # CHECK-NEXT:  1      1     0.33                        xorw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorw   (%rax), %di
 # CHECK-NEXT:  1      1     0.33                        xorl   $665536, %eax
 # CHECK-NEXT:  1      1     0.33                        xorl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.33                        xorq   $665536, %rax
 # CHECK-NEXT:  1      1     0.33                        xorq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.33                        xorq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1699,111 +1953,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
-# CHECK-NEXT: 160.00  -     597.83 239.33 234.00 605.83 328.50 328.50
+# CHECK-NEXT: 160.00  -     670.17 294.67 361.00 687.17 455.50 455.50
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $0, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $0, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcb     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $7, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     $7, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcb     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcb     %sil, %dil
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcb     %sil, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $0, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $0, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcw     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $511, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $511, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcw     $511, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     $7, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcw     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcw     %si, %di
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcw     %si, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcw     (%rax), %di
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $0, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $0, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcl     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $665536, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $665536, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcl     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     $7, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcl     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcl     %esi, %edi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcl     %esi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $0, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $0, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcq     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $665536, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $665536, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcq     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     $7, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   adcq     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             adcq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     adcq     %rsi, %rdi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   adcq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             adcq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   adcq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     addq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   addq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             addq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   addq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     andq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   andq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             andq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   andq     (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     bsfw     %si, %di
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -     bsrw     %si, %di
@@ -1827,6 +2118,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btcw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btrw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btsw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btcw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btrw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btsw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btw      $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcw     $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrw     $7, %di
@@ -1835,6 +2129,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btcw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btrw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btsw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btcw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btrw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btsw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btl      %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcl     %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrl     %esi, %edi
@@ -1843,6 +2140,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btcl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btrl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btsl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btcl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btrl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btsl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btl      $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcl     $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrl     $7, %edi
@@ -1851,6 +2151,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btcl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btrl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btsl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btcl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btrl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btsl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btq      %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrq     %rsi, %rdi
@@ -1859,6 +2162,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btcq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btrq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   btsq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btcq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btrq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.83   0.33   1.00   1.83   1.00   1.00   lock             btsq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btq      $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btcq     $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -     0.50    -      -     btrq     $7, %rdi
@@ -1867,6 +2173,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btcq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btrq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   btsq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btcq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btrq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     1.00   0.50   1.00   1.00   lock             btsq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cbtw
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cwtl
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cltq
@@ -1925,12 +2234,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     cpuid
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decb     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decb    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decw     %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decw     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decw    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decl     %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     decq     %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   decq     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             decq    (%rax)
 # CHECK-NEXT: 10.00   -     1.00    -      -      -      -      -     divb     %dil
 # CHECK-NEXT: 10.00   -     1.00    -      -      -     0.50   0.50   divb     (%rax)
 # CHECK-NEXT: 10.00   -     1.00    -      -      -      -      -     divw     %si
@@ -1982,12 +2295,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     inl      %dx, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incb     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incb    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incw     %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incw     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incw    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incl     %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     incq     %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   incq     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             incq    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insb     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insw     %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     insl     %dx, %es:(%rdi)
@@ -2036,12 +2353,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.00   1.00    -      -     0.50   0.50   mulq     (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negb     (%r8)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negb    (%r8)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negw     %si
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negw     (%r9)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negw    (%r9)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negl     %edx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     negq     %rcx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   negq     (%r10)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             negq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopw     %di
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopw     (%rcx)
@@ -2051,41 +2372,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -     nopq     (%r9)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notb     %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notb     (%r8)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notb    (%r8)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notw     %si
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notw     (%r9)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notw    (%r9)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notl     %edx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notl     (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notl    (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     notq     %rcx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   notq     (%r10)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             notq    (%r10)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orb      $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orb      $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orb      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orb     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orb      %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orb      %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orb     %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orb      (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orw      $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orw     $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orw      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orw      %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orw      %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orw      (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orl      $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orl     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orl      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orl      %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orl      %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orl      (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orq      $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orq     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orq      $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     orq      %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   orq      %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             orq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   orq      (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     outb     %al, $7
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     outb     %al, %dx
@@ -2273,44 +2609,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $0, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $0, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbb     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $7, %al
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     $7, %dil
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbb     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbb     %sil, %dil
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbb     %sil, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $0, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $0, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbw     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $511, %ax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $511, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbw     $511, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     $7, %di
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbw     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbw     %si, %di
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbw     %si, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbw     (%rax), %di
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $0, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $0, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbl     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $665536, %eax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $665536, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbl     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     $7, %edi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbl     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbl     %esi, %edi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbl     %esi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $0, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $0, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbq     $0, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $665536, %rax
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $665536, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbq     $665536, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     $7, %rdi
 # CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   sbbq     $7, (%rax)
+# CHECK-NEXT:  -      -     1.00   1.00   1.00   1.00   1.00   1.00   lock             sbbq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83    -      -     sbbq     %rsi, %rdi
 # CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   sbbq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.33   0.33   1.00   1.33   1.00   1.00   lock             sbbq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.83   0.33    -     0.83   0.50   0.50   sbbq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67    -      -     scasb    %es:(%rdi), %al
 # CHECK-NEXT:  -      -     0.67   0.67    -     0.67    -      -     scasw    %es:(%rdi), %ax
@@ -2381,32 +2732,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     subq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   subq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             subq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   subq     (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     testb    $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     testb    $7, %dil
@@ -2438,51 +2800,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     wrmsr
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddb    %bl, %cl
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddb    %bl, (%rcx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddb   %bl, (%rcx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddw    %bx, %cx
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddw    %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddl    %ebx, %ecx
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddl    %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xaddq    %rbx, %rcx
 # CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   xaddq    %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.67   0.67   1.00   0.67   1.00   1.00   lock             xaddq   %rax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgb    %bl, %cl
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgb    %bl, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgb   %bl, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgw    %bx, %ax
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgw    %bx, %cx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgw    %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgl    %ebx, %eax
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgl    %ebx, %ecx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgl    %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgq    %rbx, %rax
 # CHECK-NEXT:  -      -     1.00   1.00    -     1.00    -      -     xchgq    %rbx, %rcx
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xchgq    %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xchgq   %rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -      -      -     0.50   0.50   xlatb
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorb     $7, %al
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorb     $7, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorb     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorb     %sil, %dil
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorb     %sil, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorb     (%rax), %dil
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     $511, %ax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     $511, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorw     $511, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     $7, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorw     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorw     %si, %di
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorw     %si, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorw     (%rax), %di
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     $665536, %eax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     $665536, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorl     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     $7, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorl     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorl     %esi, %edi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorl     %esi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorl     (%rax), %edi
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     $665536, %rax
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     $665536, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorq     $665536, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     $7, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorq     $7, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33    -      -     xorq     %rsi, %rdi
 # CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   xorq     %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.33   0.33   1.00   0.33   1.00   1.00   lock             xorq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.33   0.33    -     0.33   0.50   0.50   xorq     (%rax), %rdi
index 1672bf8322c7b36aea31782aa422f7c242fbce58..05deb0e6510393c3403a089a883b978b796c5e41 100644 (file)
 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
@@ -254,12 +309,16 @@ 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.50                        adcb   $0, %al
 # CHECK-NEXT:  1      1     0.50                        adcb   $0, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        adcb   $7, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcb   %sil, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        adcw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        adcw   $0, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        adcw   $511, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   $7, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   %si, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        adcl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        adcl   $0, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        adcl   $665536, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   $7, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   %esi, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        adcq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        adcq   $0, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        adcq   $665536, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   $7, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   %rsi, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        addb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        addb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        addw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        addw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        addl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        addl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        addq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        addq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        andb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        andb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        andw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        andw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        andl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        andl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        andq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        andq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  1      3     1.00                        bsfw   %si, %di
 # CHECK-NEXT:  1      3     1.00                        bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      6     1.00    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btsw    %si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw    $7, %di
 # CHECK-NEXT:  1      1     0.50                        btcw   $7, %di
 # CHECK-NEXT:  1      1     0.50                        btrw   $7, %di
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      6     1.00    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btsw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   %esi, %edi
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      6     1.00    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btsl    %esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   $7, %edi
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      6     1.00    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btsl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   %rsi, %rdi
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      6     1.00    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btsq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   $7, %rdi
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      6     1.00    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            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
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  8      18    2.00                  U     cpuid
 # CHECK-NEXT:  1      1     0.25                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            decw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            decl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            decq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decq    (%rax)
 # CHECK-NEXT:  1      25    10.00                 U     divb   %dil
 # CHECK-NEXT:  2      29    10.00   *             U     divb   (%rax)
 # CHECK-NEXT:  32     76    8.00                  U     divw   %si
@@ -1182,12 +1368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  23     35    5.00                  U     inl    %dx, %eax
 # CHECK-NEXT:  1      1     0.25                        incb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            incb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            incw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            incl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            incq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incq    (%rax)
 # CHECK-NEXT:  8      20    1.25                  U     insb   %dx, %es:(%rdi)
 # CHECK-NEXT:  8      20    1.25                  U     insw   %dx, %es:(%rdi)
 # CHECK-NEXT:  8      20    1.25                  U     insl   %dx, %es:(%rdi)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      9     1.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     0.25                        negb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            negb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     0.25                        negw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            negw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     0.25                        negl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            negl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        negq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            negq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negq    (%r10)
 # CHECK-NEXT:  1      1     0.17                        nop
 # CHECK-NEXT:  1      1     0.17                        nopw   %di
 # CHECK-NEXT:  1      1     0.17                        nopw   (%rcx)
@@ -1251,41 +1445,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.17                        nopq   (%r9)
 # CHECK-NEXT:  1      1     0.25                        notb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            notb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     0.25                        notw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            notw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     0.25                        notl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            notl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        notq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            notq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notq    (%r10)
 # CHECK-NEXT:  1      1     0.25                        orb    $7, %al
 # CHECK-NEXT:  1      1     0.25                        orb    $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orb    %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orb    (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        orw    $511, %ax
 # CHECK-NEXT:  1      1     0.25                        orw    $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw    $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw    %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orw    (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        orl    $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        orl    $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl    $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl    %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orl    (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        orq    $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        orq    $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq    $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq    %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  23     35    5.00                  U     outb   %al, $7
 # CHECK-NEXT:  23     35    5.00                  U     outb   %al, %dx
@@ -1473,44 +1682,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.50                        sbbb   $0, %al
 # CHECK-NEXT:  1      1     0.50                        sbbb   $0, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        sbbb   $7, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbb   %sil, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        sbbw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        sbbw   $0, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        sbbw   $511, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   $7, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   %si, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        sbbl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        sbbl   $0, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        sbbl   $665536, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   $7, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   %esi, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        sbbq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        sbbq   $0, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        sbbq   $665536, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   $7, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  3      7     0.50                  U     scasb  %es:(%rdi), %al
 # CHECK-NEXT:  3      7     0.50                  U     scasw  %es:(%rdi), %ax
@@ -1581,32 +1805,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        subb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        subb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        subw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        subw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        subl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        subl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        subq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        subq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        testb  $7, %al
 # CHECK-NEXT:  1      1     0.25                        testb  $7, %dil
@@ -1638,53 +1873,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     wrmsr
 # CHECK-NEXT:  3      2     0.75                        xaddb  %bl, %cl
 # CHECK-NEXT:  5      7     1.00    *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT:  3      2     0.75                        xaddw  %bx, %cx
 # CHECK-NEXT:  5      7     1.00    *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xaddl  %ebx, %ecx
 # CHECK-NEXT:  5      7     1.00    *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xaddq  %rbx, %rcx
 # CHECK-NEXT:  5      7     1.00    *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgb  %bl, %cl
 # CHECK-NEXT:  8      10    1.25    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  8      10    1.25    *      *            lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgw  %bx, %ax
 # CHECK-NEXT:  3      2     0.75                        xchgw  %bx, %cx
 # CHECK-NEXT:  8      10    1.25    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  8      10    1.25    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgl  %ebx, %eax
 # CHECK-NEXT:  3      2     0.75                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  8      10    1.25    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  8      10    1.25    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgq  %rbx, %rax
 # CHECK-NEXT:  3      2     0.75                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  8      10    1.25    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  8      10    1.25    *      *            lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  1      5     0.50    *                   xlatb
 # CHECK-NEXT:  1      1     0.25                        xorb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        xorb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        xorw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        xorw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        xorl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        xorl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        xorq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        xorq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1701,111 +1955,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT: 60.00   -     593.75 327.25 272.67 272.67 218.00 294.75 650.25 86.67
+# CHECK-NEXT: 60.00   -     662.75 359.75 378.50 378.50 345.00 327.25 723.25 129.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcb       $0, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcb       $0, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcb       $7, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcb       $7, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcb       %sil, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       %sil, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     adcb       (%rax), %dil
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $0, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $0, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcw       $511, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $511, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $511, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $7, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       %si, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       %si, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     adcw       (%rax), %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $0, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $0, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcl       $665536, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $665536, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $7, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       %esi, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       %esi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     adcl       (%rax), %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $0, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $0, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcq       $665536, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $665536, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $7, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       %rsi, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     andq       (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     bsfw       %si, %di
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     bsrw       %si, %di
@@ -1829,6 +2120,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btcw       %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btrw       %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btsw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btcw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btrw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btsw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btw        $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcw       $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrw       $7, %di
@@ -1837,6 +2131,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcw       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrw       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btsw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btl        %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcl       %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrl       %esi, %edi
@@ -1845,6 +2142,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btcl       %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btrl       %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btsl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btcl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btrl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btsl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btl        $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcl       $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrl       $7, %edi
@@ -1853,6 +2153,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcl       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrl       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btsl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btq        %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrq       %rsi, %rdi
@@ -1861,6 +2164,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btcq       %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btrq       %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btsq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btcq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btrq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btsq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btq        $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcq       $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrq       $7, %rdi
@@ -1869,6 +2175,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcq       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrq       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   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
@@ -1927,12 +2236,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.75   1.25    -      -      -     2.25   2.75    -     cpuid
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decb       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decb    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decw       %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decw       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decw    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decl       %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decq       %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decq       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decq    (%rax)
 # CHECK-NEXT: 10.00   -     1.00    -      -      -      -      -      -      -     divb       %dil
 # CHECK-NEXT: 10.00   -     1.00    -     0.50   0.50    -      -      -      -     divb       (%rax)
 # CHECK-NEXT:  -      -     10.25  4.75    -      -      -     11.25  5.75    -     divw       %si
@@ -1984,12 +2297,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     4.50   2.50   1.50   1.50    -     3.50   9.50    -     inl        %dx, %eax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incb       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incb    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incw       %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incw       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incw    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incl       %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incq       %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incq       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incq    (%rax)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insb       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insw       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insl       %dx, %es:(%rdi)
@@ -2038,12 +2355,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -     1.00    -      -     mulq       (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negb       (%r8)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negb    (%r8)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negw       %si
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negw       (%r9)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negw    (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negl       %edx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negq       %rcx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negq       (%r10)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopw       %di
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopw       (%rcx)
@@ -2053,41 +2374,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopq       (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notb       (%r8)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notb    (%r8)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notw       %si
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notw       (%r9)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notw    (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notl       %edx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notq       %rcx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notq       (%r10)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orb        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orb     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orb        %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orb        %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orb     %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orw        $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orw        %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orl        $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orl        %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orq        $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orq        %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     orq        (%rax), %rdi
 # CHECK-NEXT:  -      -     4.50   2.50   1.33   1.33    -     3.50   9.50   0.33   outb       %al, $7
 # CHECK-NEXT:  -      -     4.50   2.50   1.33   1.33    -     3.50   9.50   0.33   outb       %al, %dx
@@ -2275,44 +2611,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbb       $0, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbb       $0, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbb       $7, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbb       $7, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbb       %sil, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       %sil, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbb       (%rax), %dil
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $0, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $0, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbw       $511, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $511, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $511, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $7, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       %si, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       %si, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbw       (%rax), %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $0, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $0, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbl       $665536, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $665536, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $7, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       %esi, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       %esi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbl       (%rax), %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $0, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $0, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbq       $665536, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $665536, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $7, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       %rsi, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbq       (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     scasb      %es:(%rdi), %al
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     scasw      %es:(%rdi), %ax
@@ -2383,32 +2734,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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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
@@ -2440,51 +2802,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     wrmsr
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddb      %bl, %cl
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddb      %bl, (%rcx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddb   %bl, (%rcx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddw      %bx, %cx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddw      %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddl      %ebx, %ecx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddl      %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddq      %rbx, %rcx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddq      %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddq   %rax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgb      %bl, %cl
 # CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   xchgb      %bl, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   lock               xchgb   %bl, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgw      %bx, %ax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgw      %bx, %cx
 # CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   xchgw      %ax, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   lock               xchgw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgl      %ebx, %eax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgl      %ebx, %ecx
 # CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   xchgl      %eax, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   lock               xchgl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgq      %rbx, %rax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgq      %rbx, %rcx
 # CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   xchgq      %rax, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   lock               xchgq   %rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     xorq       (%rax), %rdi
index 10530c4f4f0d48b6205342fa681bcbb4956177fa..224ec2981297a26a95073460de2826895f983fef 100644 (file)
 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
@@ -254,12 +309,16 @@ 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,141 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.50                        adcb   $0, %al
 # CHECK-NEXT:  1      1     0.50                        adcb   $0, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        adcb   $7, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcb   %sil, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        adcw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        adcw   $0, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        adcw   $511, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   $7, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcw   %si, %di
 # CHECK-NEXT:  6      8     1.00    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        adcl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        adcl   $0, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        adcl   $665536, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   $7, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcl   %esi, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        adcq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        adcq   $0, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        adcq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        adcq   $665536, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   $7, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        adcq   %rsi, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   adcq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        addb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        addb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        addw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        addw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        addl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        addl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        addq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        addq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   addq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        andb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        andb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        andw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        andw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        andl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        andl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        andq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        andq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  1      3     1.00                        bsfw   %si, %di
 # CHECK-NEXT:  1      3     1.00                        bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      6     1.00    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btsw    %si, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btw    $7, %di
 # CHECK-NEXT:  1      1     0.50                        btcw   $7, %di
 # CHECK-NEXT:  1      1     0.50                        btrw   $7, %di
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      6     1.00    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btsw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   %esi, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   %esi, %edi
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      6     1.00    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btsl    %esi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btl    $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btcl   $7, %edi
 # CHECK-NEXT:  1      1     0.50                        btrl   $7, %edi
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      6     1.00    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btsl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   %rsi, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   %rsi, %rdi
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      6     1.00    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  3      6     1.00    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  3      6     1.00    *      *            lock           btsq    %rsi, (%rax)
 # CHECK-NEXT:  1      1     0.50                        btq    $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btcq   $7, %rdi
 # CHECK-NEXT:  1      1     0.50                        btrq   $7, %rdi
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  4      6     1.00    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  4      6     1.00    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  4      6     1.00    *      *            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
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  8      18    2.00                  U     cpuid
 # CHECK-NEXT:  1      1     0.25                        decb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            decb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            decw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            decl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            decq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           decq    (%rax)
 # CHECK-NEXT:  1      25    10.00                 U     divb   %dil
 # CHECK-NEXT:  2      29    10.00   *             U     divb   (%rax)
 # CHECK-NEXT:  32     76    8.00                  U     divw   %si
@@ -1182,12 +1368,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  23     35    5.00                  U     inl    %dx, %eax
 # CHECK-NEXT:  1      1     0.25                        incb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            incb   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incw   %di
 # CHECK-NEXT:  3      7     1.00    *      *            incw   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incl   %edi
 # CHECK-NEXT:  3      7     1.00    *      *            incl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incq   %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            incq   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           incq    (%rax)
 # CHECK-NEXT:  8      20    1.25                  U     insb   %dx, %es:(%rdi)
 # CHECK-NEXT:  8      20    1.25                  U     insw   %dx, %es:(%rdi)
 # CHECK-NEXT:  8      20    1.25                  U     insl   %dx, %es:(%rdi)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  3      9     1.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     0.25                        negb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            negb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     0.25                        negw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            negw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     0.25                        negl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            negl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        negq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            negq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           negq    (%r10)
 # CHECK-NEXT:  1      1     0.17                        nop
 # CHECK-NEXT:  1      1     0.17                        nopw   %di
 # CHECK-NEXT:  1      1     0.17                        nopw   (%rcx)
@@ -1251,41 +1445,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.17                        nopq   (%r9)
 # CHECK-NEXT:  1      1     0.25                        notb   %dil
 # CHECK-NEXT:  3      7     1.00    *      *            notb   (%r8)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     0.25                        notw   %si
 # CHECK-NEXT:  3      7     1.00    *      *            notw   (%r9)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     0.25                        notl   %edx
 # CHECK-NEXT:  3      7     1.00    *      *            notl   (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        notq   %rcx
 # CHECK-NEXT:  3      7     1.00    *      *            notq   (%r10)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           notq    (%r10)
 # CHECK-NEXT:  1      1     0.25                        orb    $7, %al
 # CHECK-NEXT:  1      1     0.25                        orb    $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orb    %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orb    (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        orw    $511, %ax
 # CHECK-NEXT:  1      1     0.25                        orw    $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw    $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw    %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orw    (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        orl    $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        orl    $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl    $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl    %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orl    (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        orq    $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        orq    $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq    $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq    %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  23     35    5.00                  U     outb   %al, $7
 # CHECK-NEXT:  23     35    5.00                  U     outb   %al, %dx
@@ -1473,44 +1682,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      2     0.50                        sbbb   $0, %al
 # CHECK-NEXT:  1      1     0.50                        sbbb   $0, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbb    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbb   $7, %al
 # CHECK-NEXT:  1      1     0.50                        sbbb   $7, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbb   %sil, %dil
 # CHECK-NEXT:  6      8     1.00    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.50                        sbbw   $0, %ax
 # CHECK-NEXT:  1      1     0.50                        sbbw   $0, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbw   $511, %ax
 # CHECK-NEXT:  1      1     0.50                        sbbw   $511, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   $7, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbw   %si, %di
 # CHECK-NEXT:  6      8     1.00    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbw   (%rax), %di
 # CHECK-NEXT:  1      1     0.50                        sbbl   $0, %eax
 # CHECK-NEXT:  1      1     0.50                        sbbl   $0, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbl   $665536, %eax
 # CHECK-NEXT:  1      1     0.50                        sbbl   $665536, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   $7, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbl   %esi, %edi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.50                        sbbq   $0, %rax
 # CHECK-NEXT:  1      1     0.50                        sbbq   $0, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    $0, (%rax)
 # CHECK-NEXT:  2      2     0.50                        sbbq   $665536, %rax
 # CHECK-NEXT:  1      1     0.50                        sbbq   $665536, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   $7, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.50                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  6      8     1.00    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  6      8     1.00    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   sbbq   (%rax), %rdi
 # CHECK-NEXT:  3      7     0.50                  U     scasb  %es:(%rdi), %al
 # CHECK-NEXT:  3      7     0.50                  U     scasw  %es:(%rdi), %ax
@@ -1581,32 +1805,43 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        subb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        subb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        subw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        subw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        subl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        subl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        subq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        subq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        testb  $7, %al
 # CHECK-NEXT:  1      1     0.25                        testb  $7, %dil
@@ -1638,53 +1873,72 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     wrmsr
 # CHECK-NEXT:  3      2     0.75                        xaddb  %bl, %cl
 # CHECK-NEXT:  5      7     1.00    *      *            xaddb  %bl, (%rcx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddb   %bl, (%rcx)
 # CHECK-NEXT:  3      2     0.75                        xaddw  %bx, %cx
 # CHECK-NEXT:  5      7     1.00    *      *            xaddw  %ax, (%rbx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xaddl  %ebx, %ecx
 # CHECK-NEXT:  5      7     1.00    *      *            xaddl  %eax, (%rbx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xaddq  %rbx, %rcx
 # CHECK-NEXT:  5      7     1.00    *      *            xaddq  %rax, (%rbx)
+# CHECK-NEXT:  5      7     1.00    *      *            lock           xaddq   %rax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgb  %bl, %cl
 # CHECK-NEXT:  8      10    1.25    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  8      10    1.25    *      *            lock           xchgb   %bl, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgw  %bx, %ax
 # CHECK-NEXT:  3      2     0.75                        xchgw  %bx, %cx
 # CHECK-NEXT:  8      10    1.25    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  8      10    1.25    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgl  %ebx, %eax
 # CHECK-NEXT:  3      2     0.75                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  8      10    1.25    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  8      10    1.25    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  3      2     0.75                        xchgq  %rbx, %rax
 # CHECK-NEXT:  3      2     0.75                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  8      10    1.25    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  8      10    1.25    *      *            lock           xchgq   %rax, (%rbx)
 # CHECK-NEXT:  1      5     0.50    *                   xlatb
 # CHECK-NEXT:  1      1     0.25                        xorb   $7, %al
 # CHECK-NEXT:  1      1     0.25                        xorb   $7, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorb   %sil, %dil
 # CHECK-NEXT:  3      7     1.00    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorb   (%rax), %dil
 # CHECK-NEXT:  1      1     0.25                        xorw   $511, %ax
 # CHECK-NEXT:  1      1     0.25                        xorw   $511, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw   $7, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw   %si, %di
 # CHECK-NEXT:  3      7     1.00    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorw   (%rax), %di
 # CHECK-NEXT:  1      1     0.25                        xorl   $665536, %eax
 # CHECK-NEXT:  1      1     0.25                        xorl   $665536, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl   $7, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl   %esi, %edi
 # CHECK-NEXT:  3      7     1.00    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorl   (%rax), %edi
 # CHECK-NEXT:  1      1     0.25                        xorq   $665536, %rax
 # CHECK-NEXT:  1      1     0.25                        xorq   $665536, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq   $7, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq   %rsi, %rdi
 # CHECK-NEXT:  3      7     1.00    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  3      7     1.00    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1701,111 +1955,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-# CHECK-NEXT: 60.00   -     594.00 327.50 272.67 272.67 218.00 295.00 650.50 86.67
+# CHECK-NEXT: 60.00   -     663.00 360.00 378.50 378.50 345.00 327.50 723.50 129.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    Instructions:
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcb       $0, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcb       $0, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcb       $7, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcb       $7, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcb       %sil, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcb       %sil, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     adcb       (%rax), %dil
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $0, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $0, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcw       $511, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $511, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $511, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       $7, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcw       %si, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcw       %si, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     adcw       (%rax), %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $0, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $0, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcl       $665536, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $665536, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       $7, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcl       %esi, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcl       %esi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     adcl       (%rax), %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $0, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $0, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     adcq       $665536, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $665536, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       $7, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     adcq       %rsi, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   adcq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               adcq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     addq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   addq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               addq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     andq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   andq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               andq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     andq       (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     bsfw       %si, %di
 # CHECK-NEXT:  -      -      -     1.00    -      -      -      -      -      -     bsrw       %si, %di
@@ -1829,6 +2120,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btcw       %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btrw       %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btsw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btcw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btrw    %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btsw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btw        $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcw       $7, %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrw       $7, %di
@@ -1837,6 +2131,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcw       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrw       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrw    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btsw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btl        %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcl       %esi, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrl       %esi, %edi
@@ -1845,6 +2142,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btcl       %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btrl       %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btsl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btcl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btrl    %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btsl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btl        $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcl       $7, %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrl       $7, %edi
@@ -1853,6 +2153,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcl       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrl       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrl    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btsl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btq        %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrq       %rsi, %rdi
@@ -1861,6 +2164,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btcq       %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btrq       %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   btsq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btcq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btrq    %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               btsq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btq        $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btcq       $7, %rdi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     btrq       $7, %rdi
@@ -1869,6 +2175,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btcq       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btrq       $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   btsq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btcq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   lock               btrq    $7, (%rax)
+# CHECK-NEXT:  -      -     0.50    -     0.83   0.83   1.00    -     0.50   0.33   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
@@ -1927,12 +2236,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     1.75   1.25    -      -      -     2.25   2.75    -     cpuid
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decb       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decb    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decw       %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decw       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decw    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decl       %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     decq       %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   decq       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               decq    (%rax)
 # CHECK-NEXT: 10.00   -     1.00    -      -      -      -      -      -      -     divb       %dil
 # CHECK-NEXT: 10.00   -     1.00    -     0.50   0.50    -      -      -      -     divb       (%rax)
 # CHECK-NEXT:  -      -     10.25  4.75    -      -      -     11.25  5.75    -     divw       %si
@@ -1984,12 +2297,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     4.50   2.50   1.50   1.50    -     3.50   9.50    -     inl        %dx, %eax
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incb       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incb    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incw       %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incw       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incw    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incl       %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     incq       %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   incq       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               incq    (%rax)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insb       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insw       %dx, %es:(%rdi)
 # CHECK-NEXT:  -      -     1.00   0.50   0.83   0.83   1.00   1.50   2.00   0.33   insl       %dx, %es:(%rdi)
@@ -2038,12 +2355,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -     1.00   0.50   0.50    -     1.00    -      -     mulq       (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negb       (%r8)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negb    (%r8)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negw       %si
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negw       (%r9)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negw    (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negl       %edx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     negq       %rcx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   negq       (%r10)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               negq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopw       %di
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopw       (%rcx)
@@ -2053,41 +2374,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -     nopq       (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notb       %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notb       (%r8)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notb    (%r8)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notw       %si
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notw       (%r9)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notw    (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notl       %edx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notl       (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               notl    (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     notq       %rcx
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   notq       (%r10)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orb        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orb     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orb        %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orb        %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orb     %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orw        $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orw        %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orw        %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orw     %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orl        $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orl        %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orl        %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orl     %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orq        $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     orq        %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   orq        %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               orq     %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     orq        (%rax), %rdi
 # CHECK-NEXT:  -      -     4.50   2.50   1.33   1.33    -     3.50   9.50   0.33   outb       %al, $7
 # CHECK-NEXT:  -      -     4.50   2.50   1.33   1.33    -     3.50   9.50   0.33   outb       %al, %dx
@@ -2275,44 +2611,59 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbb       $0, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbb       $0, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbb       $7, %al
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbb       $7, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbb       %sil, %dil
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbb       %sil, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbb       (%rax), %dil
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $0, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $0, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbw       $511, %ax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $511, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $511, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       $7, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbw       %si, %di
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbw       %si, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbw       (%rax), %di
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $0, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $0, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbl       $665536, %eax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $665536, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       $7, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbl       %esi, %edi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbl       %esi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbl       (%rax), %edi
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $0, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $0, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $0, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $0, (%rax)
 # CHECK-NEXT:  -      -     0.75   0.25    -      -      -     0.25   0.75    -     sbbq       $665536, %rax
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $665536, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $665536, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       $7, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       $7, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.50    -      -      -      -      -     0.50    -     sbbq       %rsi, %rdi
 # CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   sbbq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     1.25   0.25   0.83   0.83   1.00   0.25   1.25   0.33   lock               sbbq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.50    -     0.50   0.50    -      -     0.50    -     sbbq       (%rax), %rdi
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     scasb      %es:(%rdi), %al
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -     0.50   0.50    -     scasw      %es:(%rdi), %ax
@@ -2383,32 +2734,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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     subq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   subq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               subq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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
@@ -2440,51 +2802,70 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     wrmsr
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddb      %bl, %cl
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddb      %bl, (%rcx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddb   %bl, (%rcx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddw      %bx, %cx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddw      %ax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddl      %ebx, %ecx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddl      %eax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xaddq      %rbx, %rcx
 # CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   xaddq      %rax, (%rbx)
+# CHECK-NEXT:  -      -     0.50   0.50   0.83   0.83   1.00   0.50   0.50   0.33   lock               xaddq   %rax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgb      %bl, %cl
 # CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   xchgb      %bl, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   lock               xchgb   %bl, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgw      %bx, %ax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgw      %bx, %cx
 # CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   xchgw      %ax, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   lock               xchgw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgl      %ebx, %eax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgl      %ebx, %ecx
 # CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   xchgl      %eax, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   lock               xchgl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgq      %rbx, %rax
 # CHECK-NEXT:  -      -     0.75   0.75    -      -      -     0.75   0.75    -     xchgq      %rbx, %rcx
 # CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   xchgq      %rax, (%rbx)
+# CHECK-NEXT:  -      -     1.25   0.75   0.83   0.83   1.00   0.75   2.25   0.33   lock               xchgq   %rax, (%rbx)
 # CHECK-NEXT:  -      -      -      -     0.50   0.50    -      -      -      -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorb       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorb    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorb       %sil, %dil
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorb       %sil, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorb    %sil, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       $511, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    $511, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorw       $7, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorw       %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorw       %si, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorw    %si, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorl       $7, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorl       %esi, %edi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorl       %esi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorl    %esi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     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.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       $665536, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    $665536, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorq       $7, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       $7, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    $7, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25    -      -      -     0.25   0.25    -     xorq       %rsi, %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   xorq       %rsi, (%rax)
+# CHECK-NEXT:  -      -     0.25   0.25   0.83   0.83   1.00   0.25   0.25   0.33   lock               xorq    %rsi, (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.50   0.50    -     0.25   0.25    -     xorq       (%rax), %rdi
index e71fc467123350f983f8cc51ba42bd6910ea1001..d888cb36eb7a188580504d9fccb5949fc0fdd1a8 100644 (file)
 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
@@ -254,12 +309,16 @@ 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)
@@ -320,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
@@ -386,12 +449,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
@@ -403,45 +470,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
@@ -647,47 +729,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
@@ -766,35 +863,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
@@ -833,65 +941,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:
@@ -906,104 +1033,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.50    *      *            adcb   $0, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            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.50    *      *            adcb   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           adcb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcb   %sil, %dil
 # CHECK-NEXT:  2      5     0.50    *      *            adcb   %sil, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           adcb    %sil, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            adcw   $0, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            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.50    *      *            adcw   $511, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           adcw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcw   $7, %di
 # CHECK-NEXT:  2      5     0.50    *      *            adcw   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           adcw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcw   %si, %di
 # CHECK-NEXT:  2      5     0.50    *      *            adcw   %si, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           adcw    %si, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            adcl   $0, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            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.50    *      *            adcl   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           adcl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcl   $7, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            adcl   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           adcl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcl   %esi, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            adcl   %esi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           adcl    %esi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            adcq   $0, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            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.50    *      *            adcq   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           adcq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcq   $7, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            adcq   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           adcq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        adcq   %rsi, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            adcq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           adcq    %rsi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            addb   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           addb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addb   %sil, %dil
 # CHECK-NEXT:  2      5     0.50    *      *            addb   %sil, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           addb    %sil, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            addw   $511, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           addw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw   $7, %di
 # CHECK-NEXT:  2      5     0.50    *      *            addw   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           addw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addw   %si, %di
 # CHECK-NEXT:  2      5     0.50    *      *            addw   %si, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           addw    %si, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            addl   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           addl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl   $7, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            addl   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           addl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addl   %esi, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            addl   %esi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           addl    %esi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            addq   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           addq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq   $7, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            addq   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           addq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        addq   %rsi, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            addq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           addq    %rsi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            andb   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           andb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andb   %sil, %dil
 # CHECK-NEXT:  2      5     0.50    *      *            andb   %sil, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           andb    %sil, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            andw   $511, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           andw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw   $7, %di
 # CHECK-NEXT:  2      5     0.50    *      *            andw   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           andw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andw   %si, %di
 # CHECK-NEXT:  2      5     0.50    *      *            andw   %si, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           andw    %si, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            andl   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           andl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl   $7, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            andl   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           andl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andl   %esi, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            andl   %esi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           andl    %esi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            andq   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           andq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq   $7, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            andq   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           andq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        andq   %rsi, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            andq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           andq    %rsi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   andq   (%rax), %rdi
 # CHECK-NEXT:  1      3     0.25                        bsfw   %si, %di
 # CHECK-NEXT:  1      3     0.25                        bsrw   %si, %di
@@ -1027,6 +1191,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.50    *      *            btcw   %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btrw   %si, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btsw   %si, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btcw    %si, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btrw    %si, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            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
@@ -1035,6 +1202,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.50    *      *            btcw   $7, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btrw   $7, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btsw   $7, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btcw    $7, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btrw    $7, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            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
@@ -1043,6 +1213,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.50    *      *            btcl   %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btrl   %esi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btsl   %esi, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btcl    %esi, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btrl    %esi, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            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
@@ -1051,6 +1224,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.50    *      *            btcl   $7, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btrl   $7, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btsl   $7, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btcl    $7, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btrl    $7, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            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
@@ -1059,6 +1235,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.50    *      *            btcq   %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btrq   %rsi, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btsq   %rsi, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btcq    %rsi, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btrq    %rsi, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            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
@@ -1067,6 +1246,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      6     0.50    *      *            btcq   $7, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btrq   $7, (%rax)
 # CHECK-NEXT:  2      6     0.50    *      *            btsq   $7, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btcq    $7, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            lock           btrq    $7, (%rax)
+# CHECK-NEXT:  2      6     0.50    *      *            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
@@ -1125,12 +1307,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     cpuid
 # CHECK-NEXT:  1      1     0.25                        decb   %dil
 # CHECK-NEXT:  2      5     0.50    *      *            decb   (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           decb    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decw   %di
 # CHECK-NEXT:  2      5     0.50    *      *            decw   (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           decw    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decl   %edi
 # CHECK-NEXT:  2      5     0.50    *      *            decl   (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           decl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        decq   %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            decq   (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            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
@@ -1182,12 +1368,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.50    *      *            incb   (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           incb    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incw   %di
 # CHECK-NEXT:  2      5     0.50    *      *            incw   (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           incw    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incl   %edi
 # CHECK-NEXT:  2      5     0.50    *      *            incl   (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           incl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        incq   %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            incq   (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            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)
@@ -1236,12 +1426,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  2      9     1.00    *                   mulq   (%rax)
 # CHECK-NEXT:  1      1     0.25                        negb   %dil
 # CHECK-NEXT:  2      5     0.50    *      *            negb   (%r8)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           negb    (%r8)
 # CHECK-NEXT:  1      1     0.25                        negw   %si
 # CHECK-NEXT:  2      5     0.50    *      *            negw   (%r9)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           negw    (%r9)
 # CHECK-NEXT:  1      1     0.25                        negl   %edx
 # CHECK-NEXT:  2      5     0.50    *      *            negl   (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           negl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        negq   %rcx
 # CHECK-NEXT:  2      5     0.50    *      *            negq   (%r10)
+# CHECK-NEXT:  2      5     0.50    *      *            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)
@@ -1251,41 +1445,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.50    *      *            notb   (%r8)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           notb    (%r8)
 # CHECK-NEXT:  1      1     0.25                        notw   %si
 # CHECK-NEXT:  2      5     0.50    *      *            notw   (%r9)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           notw    (%r9)
 # CHECK-NEXT:  1      1     0.25                        notl   %edx
 # CHECK-NEXT:  2      5     0.50    *      *            notl   (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           notl    (%rax)
 # CHECK-NEXT:  1      1     0.25                        notq   %rcx
 # CHECK-NEXT:  2      5     0.50    *      *            notq   (%r10)
+# CHECK-NEXT:  2      5     0.50    *      *            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.50    *      *            orb    $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           orb     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orb    %sil, %dil
 # CHECK-NEXT:  2      5     0.50    *      *            orb    %sil, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           orb     %sil, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            orw    $511, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           orw     $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw    $7, %di
 # CHECK-NEXT:  2      5     0.50    *      *            orw    $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           orw     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orw    %si, %di
 # CHECK-NEXT:  2      5     0.50    *      *            orw    %si, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           orw     %si, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            orl    $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           orl     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl    $7, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            orl    $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           orl     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orl    %esi, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            orl    %esi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           orl     %esi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            orq    $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           orq     $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq    $7, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            orq    $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           orq     $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        orq    %rsi, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            orq    %rsi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           orq     %rsi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   orq    (%rax), %rdi
 # CHECK-NEXT:  1      100   0.25                  U     outb   %al, $7
 # CHECK-NEXT:  1      100   0.25                  U     outb   %al, %dx
@@ -1473,44 +1682,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.50    *      *            sbbb   $0, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            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.50    *      *            sbbb   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           sbbb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbb   %sil, %dil
 # CHECK-NEXT:  2      5     0.50    *      *            sbbb   %sil, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           sbbb    %sil, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            sbbw   $0, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            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.50    *      *            sbbw   $511, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           sbbw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbw   $7, %di
 # CHECK-NEXT:  2      5     0.50    *      *            sbbw   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           sbbw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbw   %si, %di
 # CHECK-NEXT:  2      5     0.50    *      *            sbbw   %si, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           sbbw    %si, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            sbbl   $0, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            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.50    *      *            sbbl   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           sbbl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbl   $7, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            sbbl   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           sbbl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbl   %esi, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            sbbl   %esi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           sbbl    %esi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            sbbq   $0, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            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.50    *      *            sbbq   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           sbbq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbq   $7, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            sbbq   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           sbbq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        sbbq   %rsi, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            sbbq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           sbbq    %rsi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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
@@ -1581,32 +1805,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.50    *      *            subb   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           subb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subb   %sil, %dil
 # CHECK-NEXT:  2      5     0.50    *      *            subb   %sil, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           subb    %sil, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            subw   $511, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           subw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw   $7, %di
 # CHECK-NEXT:  2      5     0.50    *      *            subw   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           subw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subw   %si, %di
 # CHECK-NEXT:  2      5     0.50    *      *            subw   %si, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           subw    %si, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            subl   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           subl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl   $7, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            subl   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           subl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subl   %esi, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            subl   %esi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           subl    %esi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            subq   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           subq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq   $7, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            subq   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           subq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        subq   %rsi, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            subq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           subq    %rsi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   subq   (%rax), %rdi
 # CHECK-NEXT:  1      1     0.25                        testb  $7, %al
 # CHECK-NEXT:  1      1     0.25                        testb  $7, %dil
@@ -1638,53 +1873,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.50                        xchgb  %bl, %cl
 # CHECK-NEXT:  2      5     0.50    *      *            xchgb  %bl, (%rbx)
+# CHECK-NEXT:  2      5     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:  2      5     0.50    *      *            xchgw  %ax, (%rbx)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xchgw   %ax, (%rbx)
 # CHECK-NEXT:  2      1     0.50                        xchgl  %ebx, %eax
 # CHECK-NEXT:  2      1     0.50                        xchgl  %ebx, %ecx
 # CHECK-NEXT:  2      5     0.50    *      *            xchgl  %eax, (%rbx)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xchgl   %eax, (%rbx)
 # CHECK-NEXT:  2      1     0.50                        xchgq  %rbx, %rax
 # CHECK-NEXT:  2      1     0.50                        xchgq  %rbx, %rcx
 # CHECK-NEXT:  2      5     0.50    *      *            xchgq  %rax, (%rbx)
+# CHECK-NEXT:  2      5     0.50    *      *            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.50    *      *            xorb   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xorb    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorb   %sil, %dil
 # CHECK-NEXT:  2      5     0.50    *      *            xorb   %sil, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xorb    %sil, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            xorw   $511, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xorw    $511, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw   $7, %di
 # CHECK-NEXT:  2      5     0.50    *      *            xorw   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xorw    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorw   %si, %di
 # CHECK-NEXT:  2      5     0.50    *      *            xorw   %si, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xorw    %si, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            xorl   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xorl    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl   $7, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            xorl   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xorl    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorl   %esi, %edi
 # CHECK-NEXT:  2      5     0.50    *      *            xorl   %esi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xorl    %esi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   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.50    *      *            xorq   $665536, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xorq    $665536, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq   $7, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            xorq   $7, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xorq    $7, (%rax)
 # CHECK-NEXT:  1      1     0.25                        xorq   %rsi, %rdi
 # CHECK-NEXT:  2      5     0.50    *      *            xorq   %rsi, (%rax)
+# CHECK-NEXT:  2      5     0.50    *      *            lock           xorq    %rsi, (%rax)
 # CHECK-NEXT:  2      5     0.50    *                   xorq   (%rax), %rdi
 
 # CHECK:      Resources:
@@ -1703,111 +1957,148 @@ xorq (%rax), %rdi
 
 # CHECK:      Resource pressure per iteration:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
-# CHECK-NEXT: 171.50 171.50 160.75 194.75 176.75 160.75 392.00  -      -      -      -     34.00
+# CHECK-NEXT: 233.00 233.00 191.50 225.50 207.50 191.50 392.00  -      -      -      -     34.00
 
 # CHECK:      Resource pressure by instruction:
 # CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb $0, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcb %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         adcb    %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw $0, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw $511, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcw %si, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         adcw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl $0, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcl %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         adcl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq $0, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     adcq %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         adcq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addb $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addb %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         addb    %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addw $511, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addw $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addw %si, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         addw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addl $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addl $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addl %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         addl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addq $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addq $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     addq %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         addq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andb $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andb %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         andb    %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andw $511, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andw $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andw %si, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         andw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andl $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andl $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andl %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         andl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         andq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     andq (%rax), %rdi
 # CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     bsfw %si, %di
 # CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     bsrw %si, %di
@@ -1831,6 +2122,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcw %si, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrw %si, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsw %si, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btcw    %si, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btrw    %si, (%rax)
+# CHECK-NEXT: 0.50   0.50   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
@@ -1839,6 +2133,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcw $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrw $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsw $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btcw    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btrw    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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
@@ -1847,6 +2144,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcl %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrl %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsl %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btcl    %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btrl    %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50   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
@@ -1855,6 +2155,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcl $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrl $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsl $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btcl    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btrl    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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
@@ -1863,6 +2166,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcq %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrq %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsq %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btcq    %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btrq    %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50   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
@@ -1871,6 +2177,9 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btcq $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btrq $7, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     btsq $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btcq    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         btrq    $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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
@@ -1929,12 +2238,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     cpuid
 # CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     decb %dil
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     decb (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     decw (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     decl (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     decq (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         decq    (%rax)
 # CHECK-NEXT:  -      -      -      -     1.00    -     15.00   -      -      -      -      -     divb %dil
 # CHECK-NEXT: 0.50   0.50    -      -     1.00    -     15.00   -      -      -      -      -     divb (%rax)
 # CHECK-NEXT:  -      -      -      -     1.00    -     17.00   -      -      -      -      -     divw %si
@@ -1986,12 +2299,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     inl  %dx, %eax
 # CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     incb %dil
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     incb (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     incw (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     incl (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     incq (%rax)
+# CHECK-NEXT: 0.50   0.50   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)
@@ -2040,12 +2357,16 @@ xorq (%rax), %rdi
 # CHECK-NEXT: 0.50   0.50    -     1.00    -      -      -      -      -      -      -     1.00   mulq (%rax)
 # CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     negb %dil
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     negb (%r8)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     negw (%r9)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     negl (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     negq (%r10)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         negq    (%r10)
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     nop
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     nopw %di
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     nopw (%rcx)
@@ -2055,41 +2376,56 @@ xorq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     nopq (%r9)
 # CHECK-NEXT:  -      -     0.25   0.25   0.25   0.25    -      -      -      -      -      -     notb %dil
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     notb (%r8)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     notw (%r9)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     notl (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     notq (%r10)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orb  $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orb  %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         orb     %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orw  $511, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orw  $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orw  %si, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         orw     %si, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orl  $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orl  $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orl  %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         orl     %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq  $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq  $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq  %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         orq     %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     orq  (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     outb %al, $7
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     outb %al, %dx
@@ -2277,44 +2613,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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb $0, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbb %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         sbbb    %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw $0, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw $511, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbw %si, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         sbbw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl $0, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbl %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         sbbl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq $0, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         sbbq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     sbbq (%rax), %rdi
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     scasb        %es:(%rdi), %al
 # CHECK-NEXT:  -      -      -      -      -      -      -      -      -      -      -      -     scasw        %es:(%rdi), %ax
@@ -2385,32 +2736,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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subb $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subb %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         subb    %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subw $511, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subw $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subw %si, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         subw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subl $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subl $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subl %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         subl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subq $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subq $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     subq %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         subq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50   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
@@ -2442,51 +2804,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.50   0.50   0.50   0.50    -      -      -      -      -      -     xchgb        %bl, %cl
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgb        %bl, (%rbx)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgw        %ax, (%rbx)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         xchgw   %ax, (%rbx)
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     xchgl        %ebx, %eax
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     xchgl        %ebx, %ecx
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgl        %eax, (%rbx)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         xchgl   %eax, (%rbx)
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     xchgq        %rbx, %rax
 # CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     xchgq        %rbx, %rcx
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xchgq        %rax, (%rbx)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorb $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorb %sil, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         xorb    %sil, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorw $511, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorw $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorw %si, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         xorw    %si, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorl $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorl $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorl %esi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         xorl    %esi, (%rax)
 # CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq $665536, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq $7, (%rax)
+# CHECK-NEXT: 0.50   0.50   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.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq %rsi, (%rax)
+# CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     lock         xorq    %rsi, (%rax)
 # CHECK-NEXT: 0.50   0.50   0.25   0.25   0.25   0.25    -      -      -      -      -      -     xorq (%rax), %rdi