Following patch allows us to emit extra run-time pointer checks and gives us extra opportunity to vectorize if one pointer is an invariant in a loop and another one can be deduced to an affine expression. With this change applied we could now vectorize following example:
struct Arrays {
double X[128]; double Y[128]; double Z[128]; double D;
} s1;
int n;
...
for ( int k=0 ; k<n ; k++ ) s1.X[k] = s1.D+ s1.Y[k] * s1.Z[k];
...
On main, there's now a SE variable that can be used instead of PSE.getSE().