Use signed stride to avoid breaking pointer math on 64-bit