| /* { dg-additional-options "-std=gnu99" { target c } } */ |
| |
| extern |
| #ifdef __cplusplus |
| "C" |
| #endif |
| void abort (); |
| |
| #define M(x, y, z) O(x, y, z) |
| #define O(x, y, z) x ## _ ## y ## _ ## z |
| |
| #pragma omp declare target |
| |
| #define F for |
| #define G f |
| #define S |
| #define N(x) M(x, G, normal) |
| #include "for-2.h" |
| #undef S |
| #undef N |
| #undef F |
| #undef G |
| |
| #pragma omp end declare target |
| |
| #undef OMPTGT |
| #undef OMPFROM |
| #undef OMPTO |
| #define DO_PRAGMA(x) _Pragma (#x) |
| #define OMPTGT DO_PRAGMA (omp target) |
| #define OMPFROM(v) DO_PRAGMA (omp target update from(v)) |
| #define OMPTO(v) DO_PRAGMA (omp target update to(v)) |
| |
| #define F teams distribute |
| #define G td |
| #define S |
| #define N(x) M(x, G, normal) |
| #include "for-2.h" |
| #undef S |
| #undef N |
| #undef F |
| #undef G |
| |
| #define F teams distribute |
| #define G td_ds128 |
| #define S dist_schedule(static, 128) |
| #define N(x) M(x, G, normal) |
| #include "for-2.h" |
| #undef S |
| #undef N |
| #undef F |
| #undef G |
| |
| #define F teams distribute simd |
| #define G tds |
| #define S |
| #define N(x) M(x, G, normal) |
| #include "for-2.h" |
| #undef S |
| #undef N |
| #undef F |
| #undef G |
| |
| #define F teams distribute simd |
| #define G tds_ds128 |
| #define S dist_schedule(static, 128) |
| #define N(x) M(x, G, normal) |
| #include "for-2.h" |
| #undef S |
| #undef N |
| #undef F |
| #undef G |
| |
| #define F teams distribute parallel for |
| #define G tdpf |
| #include "for-1.h" |
| #undef F |
| #undef G |
| |
| #define F teams distribute parallel for dist_schedule(static, 128) |
| #define G tdpf_ds128 |
| #include "for-1.h" |
| #undef F |
| #undef G |
| |
| #define F teams distribute parallel for simd |
| #define G tdpfs |
| #include "for-1.h" |
| #undef F |
| #undef G |
| |
| #define F teams distribute parallel for simd dist_schedule(static, 128) |
| #define G tdpfs_ds128 |
| #include "for-1.h" |
| #undef F |
| #undef G |
| |
| int |
| main () |
| { |
| if (test_td_normal () |
| || test_td_ds128_normal () |
| || test_tds_normal () |
| || test_tds_ds128_normal () |
| || test_tdpf_static () |
| || test_tdpf_static32 () |
| || test_tdpf_auto () |
| || test_tdpf_guided32 () |
| || test_tdpf_runtime () |
| || test_tdpf_ds128_static () |
| || test_tdpf_ds128_static32 () |
| || test_tdpf_ds128_auto () |
| || test_tdpf_ds128_guided32 () |
| || test_tdpf_ds128_runtime () |
| || test_tdpfs_static () |
| || test_tdpfs_static32 () |
| || test_tdpfs_auto () |
| || test_tdpfs_guided32 () |
| || test_tdpfs_runtime () |
| || test_tdpfs_ds128_static () |
| || test_tdpfs_ds128_static32 () |
| || test_tdpfs_ds128_auto () |
| || test_tdpfs_ds128_guided32 () |
| || test_tdpfs_ds128_runtime ()) |
| abort (); |
| return 0; |
| } |