| /* PR tree-optimization/82374 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-vect-details" } */ |
| /* { dg-additional-options "-mavx -mno-avx2" { target i?86-*-* x86_64-*-* } } */ |
| /* { dg-additional-options "-mvsx" { target powerpc_vsx_ok } } */ |
| |
| #define SIZE (1024 * 1024) |
| |
| float a[SIZE]; |
| float b[SIZE]; |
| float c[SIZE]; |
| float d[SIZE]; |
| |
| __attribute__((optimize ("O2", "tree-vectorize"))) void |
| foo (void) |
| { |
| int i; |
| #pragma omp parallel for |
| for (i = 0; i < SIZE; i++) |
| c[i] = a[i] + b[i]; |
| } |
| |
| __attribute__((optimize ("O2", "tree-vectorize"))) void |
| bar (void) |
| { |
| int i; |
| for (i = 0; i < SIZE; i++) |
| d[i] = a[i] + b[i]; |
| } |
| |
| /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target { { i?86-*-* x86_64-*-* } || { powerpc_vsx_ok } } } } } */ |