| /* PR target/99100 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-Ofast -mavx512f -fopenmp-simd -mprefer-vector-width=512" } */ |
| /* { dg-final { scan-assembler "_ZGVeN8v_myfunc" } } */ |
| /* { dg-final { scan-assembler "_ZGVeN8v_sin" } } */ |
| |
| #pragma omp declare simd notinbranch |
| double sin (double x); |
| #pragma omp declare simd simdlen(8) notinbranch |
| __attribute__((const)) double myfunc (double x); |
| |
| #define N 1024 |
| __attribute__((__aligned__ (256))) double a[N], b[N], c[N]; |
| |
| void |
| foo () |
| { |
| for (int i = 0; i < N; i++) |
| a[i] = myfunc (b[i]); |
| for (int i = 0; i < N; i++) |
| c[i] = sin (b[i]); |
| } |