An example function with and without the change. Note that the MI
implementation adds unnecessary overhead: the `test` instructions
are redundant.
With:
```
0xffffffff80bdef60 <+0>: push %rbp
0xffffffff80bdef61 <+1>: mov %rsp,%rbp
0xffffffff80bdef64 <+4>: mov %rdi,%rax
0xffffffff80bdef67 <+7>: mov $0x1,%ecx
0xffffffff80bdef6c <+12>: lock xadd %ecx,(%rdi)
0xffffffff80bdef70 <+16>: test %ecx,%ecx
0xffffffff80bdef72 <+18>: js 0xffffffff80bdef76 <crhold+22>
0xffffffff80bdef74 <+20>: pop %rbp
0xffffffff80bdef75 <+21>: retq
0xffffffff80bdef76 <+22>: movl $0xc0000000,(%rax)
0xffffffff80bdef7c <+28>: pop %rbp
0xffffffff80bdef7d <+29>: retq
```
Without:
```
Dump of assembler code for function crhold:
0xffffffff807d14b0 <+0>: push %rbp
0xffffffff807d14b1 <+1>: mov %rsp,%rbp
0xffffffff807d14b4 <+4>: mov %rdi,%rax
0xffffffff807d14b7 <+7>: lock addl $0x1,(%rdi)
0xffffffff807d14bb <+11>: pop %rbp
0xffffffff807d14bc <+12>: retq
```