1 /* { dg-do compile } */ 2 /* { dg-additional-options "-O2" } */ 3 4 #include "../../../../include/gomp-constants.h" 5 6 #pragma acc routine 7 int foo(void)8foo (void) 9 { 10 int res; 11 12 __builtin_goacc_parlevel_id (GOMP_DIM_GANG); 13 __builtin_goacc_parlevel_id (GOMP_DIM_WORKER); 14 __builtin_goacc_parlevel_id (GOMP_DIM_VECTOR); 15 16 __builtin_goacc_parlevel_size (GOMP_DIM_GANG); 17 __builtin_goacc_parlevel_size (GOMP_DIM_WORKER); 18 __builtin_goacc_parlevel_size (GOMP_DIM_VECTOR); 19 20 res += __builtin_goacc_parlevel_id (GOMP_DIM_GANG); 21 res += __builtin_goacc_parlevel_id (GOMP_DIM_WORKER); 22 res += __builtin_goacc_parlevel_id (GOMP_DIM_VECTOR); 23 24 res += __builtin_goacc_parlevel_size (GOMP_DIM_GANG); 25 res += __builtin_goacc_parlevel_size (GOMP_DIM_WORKER); 26 res += __builtin_goacc_parlevel_size (GOMP_DIM_VECTOR); 27 28 return res; 29 } 30 31 void foo2(void)32foo2 (void) 33 { 34 int res; 35 36 #pragma acc parallel 37 { 38 __builtin_goacc_parlevel_id (GOMP_DIM_GANG); 39 __builtin_goacc_parlevel_id (GOMP_DIM_WORKER); 40 __builtin_goacc_parlevel_id (GOMP_DIM_VECTOR); 41 42 __builtin_goacc_parlevel_size (GOMP_DIM_GANG); 43 __builtin_goacc_parlevel_size (GOMP_DIM_WORKER); 44 __builtin_goacc_parlevel_size (GOMP_DIM_VECTOR); 45 46 res += __builtin_goacc_parlevel_id (GOMP_DIM_GANG); 47 res += __builtin_goacc_parlevel_id (GOMP_DIM_WORKER); 48 res += __builtin_goacc_parlevel_id (GOMP_DIM_VECTOR); 49 50 res += __builtin_goacc_parlevel_size (GOMP_DIM_GANG); 51 res += __builtin_goacc_parlevel_size (GOMP_DIM_WORKER); 52 res += __builtin_goacc_parlevel_size (GOMP_DIM_VECTOR); 53 } 54 } 55 56 void foo3(void)57foo3 (void) 58 { 59 int res; 60 61 #pragma acc kernels 62 { 63 __builtin_goacc_parlevel_id (GOMP_DIM_GANG); 64 __builtin_goacc_parlevel_id (GOMP_DIM_WORKER); 65 __builtin_goacc_parlevel_id (GOMP_DIM_VECTOR); 66 67 __builtin_goacc_parlevel_size (GOMP_DIM_GANG); 68 __builtin_goacc_parlevel_size (GOMP_DIM_WORKER); 69 __builtin_goacc_parlevel_size (GOMP_DIM_VECTOR); 70 71 res += __builtin_goacc_parlevel_id (GOMP_DIM_GANG); 72 res += __builtin_goacc_parlevel_id (GOMP_DIM_WORKER); 73 res += __builtin_goacc_parlevel_id (GOMP_DIM_VECTOR); 74 75 res += __builtin_goacc_parlevel_size (GOMP_DIM_GANG); 76 res += __builtin_goacc_parlevel_size (GOMP_DIM_WORKER); 77 res += __builtin_goacc_parlevel_size (GOMP_DIM_VECTOR); 78 } 79 } 80