pr104952-2.c 359 B

12345678910111213141516171819202122
  1. #define N 32
  2. static char arr[N];
  3. int
  4. main (void)
  5. {
  6. unsigned int result = 2;
  7. for (unsigned int i = 0; i < N; ++i)
  8. arr[i] = i + 1;
  9. #pragma omp target map(tofrom:result) map(to:arr)
  10. #pragma omp simd reduction(&&: result)
  11. for (unsigned int i = 0; i < N; ++i)
  12. result = result && arr[i];
  13. if (result != 1)
  14. __builtin_abort ();
  15. return 0;
  16. }