Simplify Moves a bit.
-
Change all
Move
overlap checks to a more obvious and potentially more efficient (1 conditional jump to.Lback
instead of 1 more to.Lforward
)count > unsigned(dest - src)
. -
Write last two vectors after 2× loops unconditionally instead of an extra check. This is A BIT DUBIOUS (removes another jump, but by always performing the read+write it was jumping over, with 0.37% more chance for a cross-page write), but is shorter.
3–4. Also includes parts of !551 not related to ERMS; I’ll remove them from !551...