I don't think this is a useful optimization and it's harder to read than `return p1[i] & cast(size_t)1 << bsf(diff) ? 1 : -1;`.