When using the same pointer using the stride for with columnwise.load
and columnwise.store, we know that the columnwise memory operations
do not alias any other column access that was generated while lowering
a columnwise.load or columnwise.store. This uses the fact that the
stride must be >= number of elements loaded.
TODO:
- this is only safe when the accesses use the same number of rows