Thinking about it some more, it might make sense to do the sign swap tries
inside vect_gather_scatter_fn_p as well. That wouldn't pollute the callers.
I'm still pondering how safe swapping the sign is here.
If we have signed indices there won't be any overflow and we should be able to
switch to unsigned? In order to ensure negative values are properly
represented we need to use a pointer-sized type, though?
For the opposite direction (unsigned -> signed) do we need a pointer-sized
type? I'd have thought a 2x-sized type suffices.
--
Regards
Robin