target-43.c 476 B

1234567891011121314151617181920212223242526
  1. /* { dg-do run } */
  2. /* { dg-additional-options "-foffload-options=nvptx-none=-latomic" { target { offload_target_nvptx } } } */
  3. #include <stdlib.h>
  4. #define N 32
  5. #define TYPE char
  6. int
  7. main (void)
  8. {
  9. TYPE result = 1;
  10. TYPE a[N];
  11. for (int x = 0; x < N; ++x)
  12. a[x] = 1;
  13. #pragma omp target map(tofrom: result) map(to:a)
  14. #pragma omp for simd reduction(&&:result)
  15. for (int x = 0; x < N; ++x)
  16. result = result && a[x];
  17. if (result != 1)
  18. abort ();
  19. return 0;
  20. }