The old_bucket's hash value like 0x***010 or 0x***110, the later is in the old_bucket is because we didn't have new_bucket before, so only hash value like 0x***110 needs relocation: hashvalue & (low_mask + 1) != 0
Thanks for explaining, that clarifies things for me.
It may be worthwhile to check if this change has led to any performance improvements.