I'm going with a solution that 1. uses `compare_uint`, 2. ensures the things that should _definitively_ return false _will_ return false (e.g. 2 vs -2), and 3. other results stay the same as before (in the 0.0/-0.0/subnormal range), even if of dubious value.