/* * @@name: directive_syntax_attribute.1 * @@type: C++ * @@compilable: yes * @@linkable: yes * @@expect: success * @@version: omp_5.0 */ #include #include #define NT 4 #define thrd_no omp_get_thread_num #pragma omp declare simd linear(i) simdlen(4) #pragma omp declare simd linear(i) simdlen(8) double P(int i){ return (double)i * (double)i; } [[omp::directive(declare simd linear(i) simdlen(4))]] [[omp::directive(declare simd linear(i) simdlen(8))]] double Q(int i){ return (double)i * (double)i; } int main() { #pragma omp parallel for num_threads(NT) // PRAG 1 for(int i=0; i