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
14int 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

source code of offload/test/offloading/small_trip_count.c