1 // { dg-do compile } 2 // { dg-require-effective-target vect_float } 3 4 float mem[4096]; 5 const int N=1024; 6 7 struct XYZ { 8 float * mem; 9 int n; xXYZ10 float * x() { return mem;} yXYZ11 float * y() { return x()+n;} zXYZ12 float * z() { return y()+n;} 13 }; 14 15 inline sum(float * x,float * y,float * z,int n)16void sum(float * x, float * y, float * z, int n) { 17 for (int i=0;i!=n; ++i) 18 x[i]=y[i]+z[i]; 19 } 20 sumS()21void sumS() { 22 XYZ xyz; xyz.mem=mem; xyz.n=N; 23 sum(xyz.x(),xyz.y(),xyz.z(),xyz.n); 24 } 25 26 // { dg-final { scan-tree-dump-not "run-time aliasing" "vect" } } 27