2013-08-28 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / pr56933.c
blobb5e56fbddc91cb4e3c19c6d6009b6f4405562695
1 /* { dg-do run } */
2 /* { dg-require-effective-target vect_double } */
4 #include "tree-vect.h"
6 extern void abort (void);
7 void __attribute__((noinline,noclone))
8 foo (double *b, double *d, double *f)
10 int i;
11 for (i = 0; i < 1024; i++)
13 d[2*i] = 2. * d[2*i];
14 d[2*i+1] = 4. * d[2*i+1];
15 b[i] = d[2*i] - 1.;
16 f[i] = d[2*i+1] + 2.;
19 int main()
21 double b[1024], d[2*1024], f[1024];
22 int i;
24 check_vect ();
26 for (i = 0; i < 2*1024; i++)
27 d[i] = 1.;
28 foo (b, d, f);
29 for (i = 0; i < 1024; i+= 2)
31 if (d[2*i] != 2.)
32 abort ();
33 if (d[2*i+1] != 4.)
34 abort ();
36 for (i = 0; i < 1024; i++)
38 if (b[i] != 1.)
39 abort ();
40 if (f[i] != 6.)
41 abort ();
43 return 0;
46 /* { dg-final { cleanup-tree-dump "vect" } } */