111
|
1 /* { dg-require-effective-target vect_double } */
|
|
2
|
|
3 #include "tree-vect.h"
|
|
4
|
|
5 extern void abort (void);
|
|
6 void __attribute__((noinline,noclone))
|
|
7 foo (double *b, double *d, double *f)
|
|
8 {
|
|
9 int i;
|
|
10 for (i = 0; i < 1024; i++)
|
|
11 {
|
|
12 d[2*i] = 2. * d[2*i];
|
|
13 d[2*i+1] = 4. * d[2*i+1];
|
|
14 b[i] = d[2*i] - 1.;
|
|
15 f[i] = d[2*i+1] + 2.;
|
|
16 }
|
|
17 }
|
|
18 int main()
|
|
19 {
|
|
20 double b[1024], d[2*1024], f[1024];
|
|
21 int i;
|
|
22
|
|
23 check_vect ();
|
|
24
|
|
25 for (i = 0; i < 2*1024; i++)
|
|
26 d[i] = 1.;
|
|
27 foo (b, d, f);
|
|
28 for (i = 0; i < 1024; i+= 2)
|
|
29 {
|
|
30 if (d[2*i] != 2.)
|
|
31 abort ();
|
|
32 if (d[2*i+1] != 4.)
|
|
33 abort ();
|
|
34 }
|
|
35 for (i = 0; i < 1024; i++)
|
|
36 {
|
|
37 if (b[i] != 1.)
|
|
38 abort ();
|
|
39 if (f[i] != 6.)
|
|
40 abort ();
|
|
41 }
|
|
42 return 0;
|
|
43 }
|
|
44
|