declare-variant-2.c 560 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /* { dg-do run } */
  2. #include <omp.h>
  3. #include <stdlib.h>
  4. void
  5. foo_host (void)
  6. {
  7. if (!omp_is_initial_device ())
  8. abort ();
  9. }
  10. #pragma omp declare variant (foo_host) match (device={kind(host)})
  11. void
  12. foo (void)
  13. {
  14. if (omp_is_initial_device ())
  15. abort ();
  16. }
  17. void
  18. bar_nohost (void)
  19. {
  20. if (omp_is_initial_device ())
  21. abort ();
  22. }
  23. #pragma omp declare variant (bar_nohost) match (device={kind(nohost)})
  24. void
  25. bar (void)
  26. {
  27. if (!omp_is_initial_device ())
  28. abort ();
  29. }
  30. int
  31. main ()
  32. {
  33. #pragma omp target
  34. {
  35. foo ();
  36. bar ();
  37. }
  38. return 0;
  39. }