if (d==s) return d;if ((uintptr_t)s-(uintptr_t)d-n <= -2*n) return memcpy(d, s, n);
s - d - n mod p <= -2n mod ps - d -n < 0 s - d -n <= -2n s < d + ns <= d -ns| |d |0 <= s - d -n <= p - 2ns - d >= n| |d |s