/* { dg-require-effective-target vect_double } */ #include "tree-vect.h" extern void abort (void); double a[8], b[8]; int x; void __attribute__((noinline,noclone)) bar (void) { x = 1; } void __attribute__((noinline,noclone)) foo(int i) { double tem1 = a[2*i]; double tem2 = 2*a[2*i+1]; bar (); b[2*i] = 2*tem1; b[2*i+1] = tem2; } int main() { int i; check_vect (); for (i = 0; i < 8; ++i) b[i] = i; foo (2); return 0; } /* { dg-final { scan-tree-dump "optimized: basic block" "slp2" } } */