1 /* { dg-do compile } */
2 /* { dg-require-effective-target vect_float } */
3 /* { dg-require-effective-target vect_hw_misalign } */
4 /* { dg-additional-options "-O3 -funroll-loops -fvect-cost-model=dynamic -fopt-info-vec" } */
5
6 class mydata {
7 public:
mydata()8 mydata() {Set(-1.0);}
9 void Set (float);
upper()10 static int upper() {return 8;}
11 float data[8];
12 };
13
Set(float x)14 void mydata::Set (float x)
15 {
16 /* We want to vectorize this either as loop or basic-block. */
17 for (int i=0; i<upper(); i++) /* { dg-optimized "\[^\n\]* vectorized" } */
18 data[i] = x;
19 }
20