1 // clang-format off 2 // RUN: %libomptarget-compile-generic 3 // RUN: env LIBOMPTARGET_INFO=16 \ 4 // RUN: %libomptarget-run-generic 2>&1 | %fcheck-generic --check-prefix=DEFAULT 5 // RUN: env LIBOMPTARGET_INFO=16 LIBOMPTARGET_MIN_THREADS_FOR_LOW_TRIP_COUNT=8 \ 6 // RUN: %libomptarget-run-generic 2>&1 | %fcheck-generic --check-prefix=EIGHT 7 8 // REQUIRES: gpu 9 10 #define N 128 11 12 __attribute__((optnone)) void optnone() {} 13 14 int main() { 15 // DEFAULT: Launching kernel {{.+_main_.+}} with [4,1,1] blocks and [32,1,1] threads in SPMD mode 16 // EIGHT: Launching kernel {{.+_main_.+}} with [16,1,1] blocks and [8,1,1] threads in SPMD mode 17 #pragma omp target teams distribute parallel for simd 18 for (int i = 0; i < N; ++i) { 19 optnone(); 20 } 21 // DEFAULT: Launching kernel {{.+_main_.+}} with [4,1,1] blocks and [32,1,1] threads in SPMD mode 22 // EIGHT: Launching kernel {{.+_main_.+}} with [16,1,1] blocks and [8,1,1] threads in SPMD mode 23 #pragma omp target teams distribute parallel for simd 24 for (int i = 0; i < N - 1; ++i) { 25 optnone(); 26 } 27 // DEFAULT: Launching kernel {{.+_main_.+}} with [5,1,1] blocks and [32,1,1] threads in SPMD mode 28 // EIGHT: Launching kernel {{.+_main_.+}} with [17,1,1] blocks and [8,1,1] threads in SPMD mode 29 #pragma omp target teams distribute parallel for simd 30 for (int i = 0; i < N + 1; ++i) { 31 optnone(); 32 } 33 // DEFAULT: Launching kernel {{.+_main_.+}} with [32,1,1] blocks and [4,1,1] threads in SPMD mode 34 // EIGHT: Launching kernel {{.+_main_.+}} with [32,1,1] blocks and [4,1,1] threads in SPMD mode 35 #pragma omp target teams distribute parallel for simd thread_limit(4) 36 for (int i = 0; i < N; ++i) { 37 optnone(); 38 } 39 } 40 41