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