xref: /llvm-project/offload/test/offloading/small_trip_count.c (revision 92376c3ff5453cb954a614d368fa3d52d6d0fa99)
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