Avoid unnecessary 64-bit logic.
Avoid unnecessary 64-bit logic.

Here we have uint64_t mv and int32_t q (which is non-negative due to
max_int32).

The LHS of these comparisons is (~u64 & 1). Because we're inspecting
only the least significant bit, we don't need to bitwise-NOT the entire
64-bit value. Instead, we can get the same result by first casting to
uint32_t, then performing the bitwise-NOT and LSB-mask.

The LHS is either 0 or 1 (previously uint64_t, now uint32_t). As q is
a non-negative int32_t, casting it to uint32_t (which is
value-preserving) is sufficient to avoid signed/unsigned comparison
warnings. We don't need to widen it to uint64_t.

This doesn't appear to be perf-critical, and doesn't appear to affect
benchmark results. However, it saves code size. I've measured x86
codegen as being 64 bytes smaller (with MSVC /O2 /FAsc). Interestingly,
x64 codegen appears to be 13 bytes smaller.

ulfjack/ryu,ulfjack/ryu,ulfjack/ryu,ulfjack/ryu