for-3.c 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /* { dg-additional-options "-std=gnu99" { target c } } */
  2. extern
  3. #ifdef __cplusplus
  4. "C"
  5. #endif
  6. void abort ();
  7. #define M(x, y, z) O(x, y, z)
  8. #define O(x, y, z) x ## _ ## y ## _ ## z
  9. #define DO_PRAGMA(x) _Pragma (#x)
  10. #define OMPTEAMS DO_PRAGMA (omp target teams)
  11. #define OMPFROM(v) DO_PRAGMA (omp target update from(v))
  12. #define OMPTO(v) DO_PRAGMA (omp target update to(v))
  13. #pragma omp declare target
  14. #define F distribute
  15. #define G d
  16. #define S
  17. #define N(x) M(x, G, normal)
  18. #include "for-2.h"
  19. #undef S
  20. #undef N
  21. #undef F
  22. #undef G
  23. #define F distribute
  24. #define G d_ds128
  25. #define S dist_schedule(static, 128)
  26. #define N(x) M(x, G, normal)
  27. #include "for-2.h"
  28. #undef S
  29. #undef N
  30. #undef F
  31. #undef G
  32. #define F distribute simd
  33. #define G ds
  34. #define S
  35. #define N(x) M(x, G, normal)
  36. #include "for-2.h"
  37. #undef S
  38. #undef N
  39. #undef F
  40. #undef G
  41. #define F distribute simd
  42. #define G ds_ds128
  43. #define S dist_schedule(static, 128)
  44. #define N(x) M(x, G, normal)
  45. #include "for-2.h"
  46. #undef S
  47. #undef N
  48. #undef F
  49. #undef G
  50. #define F distribute parallel for
  51. #define G dpf
  52. #include "for-1.h"
  53. #undef F
  54. #undef G
  55. #define F distribute parallel for dist_schedule(static, 128)
  56. #define G dpf_ds128
  57. #include "for-1.h"
  58. #undef F
  59. #undef G
  60. #define F distribute parallel for simd
  61. #define G dpfs
  62. #include "for-1.h"
  63. #undef F
  64. #undef G
  65. #define F distribute parallel for simd dist_schedule(static, 128)
  66. #define G dpfs_ds128
  67. #include "for-1.h"
  68. #undef F
  69. #undef G
  70. #pragma omp end declare target
  71. int
  72. main ()
  73. {
  74. int err = 0;
  75. err |= test_d_normal ();
  76. err |= test_d_ds128_normal ();
  77. err |= test_ds_normal ();
  78. err |= test_ds_ds128_normal ();
  79. err |= test_dpf_static ();
  80. err |= test_dpf_static32 ();
  81. err |= test_dpf_auto ();
  82. err |= test_dpf_guided32 ();
  83. err |= test_dpf_runtime ();
  84. err |= test_dpf_ds128_static ();
  85. err |= test_dpf_ds128_static32 ();
  86. err |= test_dpf_ds128_auto ();
  87. err |= test_dpf_ds128_guided32 ();
  88. err |= test_dpf_ds128_runtime ();
  89. err |= test_dpfs_static ();
  90. err |= test_dpfs_static32 ();
  91. err |= test_dpfs_auto ();
  92. err |= test_dpfs_guided32 ();
  93. err |= test_dpfs_runtime ();
  94. err |= test_dpfs_ds128_static ();
  95. err |= test_dpfs_ds128_static32 ();
  96. err |= test_dpfs_ds128_auto ();
  97. err |= test_dpfs_ds128_guided32 ();
  98. err |= test_dpfs_ds128_runtime ();
  99. if (err)
  100. abort ();
  101. return 0;
  102. }