| // PR libstdc++/81706 |
| // { dg-do compile { target i?86-*-* x86_64-*-* } } |
| // { dg-options "-O3 -mavx2 -mno-avx512f" } |
| // { dg-final { scan-assembler "call\[^\n\r]__?ZGVdN4v_cos" } } |
| // { dg-final { scan-assembler "call\[^\n\r]__?ZGVdN4v_sin" } } |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| extern double cos (double) __attribute__ ((nothrow, leaf, simd ("notinbranch"))); |
| extern double sin (double) __attribute__ ((nothrow, leaf, simd ("notinbranch"))); |
| #ifdef __cplusplus |
| } |
| #endif |
| double p[1024] = { 1.0 }; |
| double q[1024] = { 1.0 }; |
| |
| void |
| foo (void) |
| { |
| int i; |
| for (i = 0; i < 1024; i++) |
| p[i] = cos (q[i]); |
| } |
| |
| void |
| bar (void) |
| { |
| int i; |
| for (i = 0; i < 1024; i++) |
| p[i] = __builtin_sin (q[i]); |
| } |