1 /* { dg-require-effective-target vect_double } */
2 
3 #include "tree-vect.h"
4 
5 extern void abort (void);
6 
7 double a[8], b[8];
8 int x;
9 
10 void __attribute__((noinline,noclone))
bar(void)11 bar (void)
12 {
13   x = 1;
14 }
15 
16 void __attribute__((noinline,noclone))
foo(int i)17 foo(int i)
18 {
19   double tem1 = a[2*i];
20   double tem2 = 2*a[2*i+1];
21   bar ();
22   b[2*i] = 2*tem1;
23   b[2*i+1] = tem2;
24 }
25 
main()26 int main()
27 {
28   int i;
29   check_vect ();
30   for (i = 0; i < 8; ++i)
31     b[i] = i;
32   foo (2);
33   return 0;
34 }
35 
36 /* { dg-final { scan-tree-dump "optimized: basic block" "slp2" } } */
37