declare-variant-3.h 857 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #pragma omp declare target
  2. int
  3. f30 (void)
  4. {
  5. return 30;
  6. }
  7. int
  8. f35 (void)
  9. {
  10. return 35;
  11. }
  12. int
  13. f53 (void)
  14. {
  15. return 53;
  16. }
  17. int
  18. f70 (void)
  19. {
  20. return 70;
  21. }
  22. int
  23. f75 (void)
  24. {
  25. return 75;
  26. }
  27. int
  28. f80 (void)
  29. {
  30. return 80;
  31. }
  32. #pragma omp declare variant (f30) match (device={isa("sm_30")})
  33. #pragma omp declare variant (f35) match (device={isa("sm_35")})
  34. #pragma omp declare variant (f53) match (device={isa("sm_53")})
  35. #pragma omp declare variant (f70) match (device={isa("sm_70")})
  36. #pragma omp declare variant (f75) match (device={isa("sm_75")})
  37. #pragma omp declare variant (f80) match (device={isa("sm_80")})
  38. int
  39. f (void)
  40. {
  41. return 0;
  42. }
  43. #pragma omp end declare target
  44. int
  45. main (void)
  46. {
  47. int v = 0;
  48. #pragma omp target map(from:v)
  49. v = f ();
  50. if (v == 0)
  51. __builtin_abort ();
  52. __builtin_printf ("Nvptx accelerator: sm_%d\n", v);
  53. return 0;
  54. }