I'm pretty sure I'm missing something here, but I'm not sure what it is... As far as I can tell, if we have an inbounds GEP, then we don't need the stride to be 1 or -1 specifically to assume it doesn't wrap in a nusw sense. If it wraps, then we will go from one half of the address space to the other, and no allocated object can be that large (or at least, using inbounds on such an object is not legal).
This is still WIP as some additional test updates are needed.