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