1 // RUN: %libomp-compile && env OMP_DISPLAY_AFFINITY=true OMP_PLACES=threads OMP_PROC_BIND=spread,close KMP_HOT_TEAMS_MAX_LEVEL=2 %libomp-run | python %S/check.py -c 'CHECK' %s
2 
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <omp.h>
6 
7 // Currently, KMP_HOT_TEAMS_MAX_LEVEL has to be equal to the
8 // nest depth for intuitive behavior
9 int main(int argc, char** argv) {
10   omp_set_affinity_format("TESTER: tl:%L tn:%n nt:%N");
11   omp_set_nested(1);
12   #pragma omp parallel num_threads(4)
13   {
14     #pragma omp parallel num_threads(3)
15     { }
16     #pragma omp parallel num_threads(3)
17     { }
18   }
19   #pragma omp parallel num_threads(4)
20   { }
21   return 0;
22 }
23 
24 // CHECK: num_threads=4 TESTER: tl:1 tn:[0-3] nt:4
25 // CHECK: num_threads=3 TESTER: tl:2 tn:[0-2] nt:3
26 // CHECK: num_threads=3 TESTER: tl:2 tn:[0-2] nt:3
27 // CHECK: num_threads=3 TESTER: tl:2 tn:[0-2] nt:3
28 // CHECK: num_threads=3 TESTER: tl:2 tn:[0-2] nt:3
29 // CHECK: num_threads=4 TESTER: tl:1 tn:[0-3] nt:4
30