1 /* PR tree-optimization/82374 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-vect-details" } */
4 /* { dg-additional-options "-mavx -mno-avx2" { target i?86-*-* x86_64-*-* } } */
5 /* { dg-additional-options "-mvsx" { target powerpc_vsx_ok } } */
6
7 #define SIZE (1024 * 1024)
8
9 float a[SIZE];
10 float b[SIZE];
11 float c[SIZE];
12 float d[SIZE];
13
14 __attribute__((optimize ("O2", "tree-vectorize"))) void
15 foo (void)
16 {
17 int i;
18 #pragma omp parallel for
19 for (i = 0; i < SIZE; i++)
20 c[i] = a[i] + b[i];
21 }
22
23 __attribute__((optimize ("O2", "tree-vectorize"))) void
24 bar (void)
25 {
26 int i;
27 for (i = 0; i < SIZE; i++)
28 d[i] = a[i] + b[i];
29 }
30
31 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target { { i?86-*-* x86_64-*-* } || { powerpc_vsx_ok } } } } } */