1 /* { dg-additional-options "-O3" } */
2 /* { dg-require-effective-target vect_double } */
6 extern void abort (void);
7 extern void *malloc (__SIZE_TYPE__
);
24 for(i
=0,s
=lattice
;i
<sites_on_node
;i
++,s
++)
25 for(dir
=0;dir
<32;dir
++)
26 for(j
=0;j
<3;j
++)for(k
=0;k
<3;k
++)
28 s
->link
[dir
].e
[j
][k
].real
*= s
->phase
[dir
];
29 s
->link
[dir
].e
[j
][k
].imag
*= s
->phase
[dir
];
38 lattice
= malloc (sizeof (struct site
) * sites_on_node
);
39 for (i
= 0; i
< 32; ++i
)
41 lattice
->phase
[i
] = i
;
42 for (j
= 0; j
< 3; ++j
)
43 for (k
= 0; k
< 3; ++k
)
45 lattice
->link
[i
].e
[j
][k
].real
= 1.0;
46 lattice
->link
[i
].e
[j
][k
].imag
= 1.0;
47 __asm__
volatile ("" : : : "memory");
51 for (i
= 0; i
< 32; ++i
)
52 for (j
= 0; j
< 3; ++j
)
53 for (k
= 0; k
< 3; ++k
)
54 if (lattice
->link
[i
].e
[j
][k
].real
!= i
55 || lattice
->link
[i
].e
[j
][k
].imag
!= i
)
60 /* We should also be able to use 2-lane SLP to initialize the real and
61 imaginary components in the first loop of main. */
62 /* { dg-final { scan-tree-dump-times "basic block vectorized" 2 "slp1" } } */