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 Doerfertint 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