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" "" { target *-*-* } 0 } */
18     data[i] = x;
19 }
20