xref: /llvm-project/offload/test/offloading/looptripcnt.c (revision 330d8983d25d08580fc1642fea48b2473f47a9da)
1*330d8983SJohannes Doerfert // RUN: %libomptarget-compile-generic && env LIBOMPTARGET_DEBUG=1 %libomptarget-run-generic 2>&1 | %fcheck-generic -allow-empty -check-prefix=DEBUG
2*330d8983SJohannes Doerfert // REQUIRES: libomptarget-debug
3*330d8983SJohannes Doerfert 
4*330d8983SJohannes Doerfert /*
5*330d8983SJohannes Doerfert   Test for looptripcount being popped from runtime stack.
6*330d8983SJohannes Doerfert */
7*330d8983SJohannes Doerfert #include <omp.h>
8*330d8983SJohannes Doerfert #include <stdio.h>
main()9*330d8983SJohannes Doerfert int main() {
10*330d8983SJohannes Doerfert   int N = 128;
11*330d8983SJohannes Doerfert   int NN = 1024;
12*330d8983SJohannes Doerfert   int num_teams[NN];
13*330d8983SJohannes Doerfert   int num_threads[NN];
14*330d8983SJohannes Doerfert 
15*330d8983SJohannes Doerfert   printf("#pragma omp target teams distribute parallel for thread_limit(4)\n");
16*330d8983SJohannes Doerfert #pragma omp target teams distribute parallel for thread_limit(4)
17*330d8983SJohannes Doerfert   for (int j = 0; j < N; j++) {
18*330d8983SJohannes Doerfert     num_threads[j] = omp_get_num_threads();
19*330d8983SJohannes Doerfert     num_teams[j] = omp_get_num_teams();
20*330d8983SJohannes Doerfert   }
21*330d8983SJohannes Doerfert   printf("num_threads %d num_teams %d\n", num_threads[0], num_teams[0]);
22*330d8983SJohannes Doerfert   // DEBUG: loop trip count is 128
23*330d8983SJohannes Doerfert   printf("#pragma omp target teams distribute parallel for\n");
24*330d8983SJohannes Doerfert #pragma omp target teams distribute parallel for
25*330d8983SJohannes Doerfert   for (int j = 0; j < N; j++) {
26*330d8983SJohannes Doerfert     num_threads[j] = omp_get_num_threads();
27*330d8983SJohannes Doerfert     num_teams[j] = omp_get_num_teams();
28*330d8983SJohannes Doerfert   }
29*330d8983SJohannes Doerfert   printf("num_threads %d num_teams %d\n", num_threads[0], num_teams[0]);
30*330d8983SJohannes Doerfert   // DEBUG: loop trip count is 128
31*330d8983SJohannes Doerfert   return 0;
32*330d8983SJohannes Doerfert }
33