D-Programming-Language/dmd — pull request #2776 by yebblies (2013-11-16 05:20:46+00:00)
Title: Issue 11508 - [REG 2.064] Wrong code with -O on x86_64 for char comparisons

After checking the lower bound, the compiler does a bt against a mask - when the mask is > 32 bits it is still using the 32-bit bt instruction.

```
mov rcx, 1000000000000DH ; 0013 _ 48: B9, 001000000000000D
bt ecx, eax ; 001D _ 0F A3. C1
```
Should be
```
mov rcx, 1000000000000DH ; 0013 _ 48: B9, 001000000000000D
bt rcx, rax ; 001D _ 48: 0F A3. C1
```

https://d.puremagic.com/issues/show_bug.cgi?id=11508