xref: /llvm-project/flang/test/Lower/OpenMP/omp-lib-num-threads.f90 (revision bfeebda3b1cc1a05e435e94f54bf2d2a2570b4e2)
1fb5fd2d8SMichael Klemm! REQUIRES: openmp_runtime
2fb5fd2d8SMichael Klemm
3*bfeebda3SMichael Klemm! RUN: %flang_fc1 -emit-hlfir %openmp_flags %s -o - 2>&1 | FileCheck %s
4*bfeebda3SMichael Klemm! RUN: bbc %openmp_flags -emit-hlfir -o - %s 2>&1 | FileCheck %s
5*bfeebda3SMichael Klemm! RUN: %flang_fc1 -emit-fir %openmp_flags %s -o - 2>&1 | FileCheck %s
6*bfeebda3SMichael Klemm! RUN: bbc -emit-fir %openmp_flags -o - %s 2>&1 | FileCheck %s
73e32b809SRazvan Lupusoru!
83e32b809SRazvan Lupusoru! Test that the calls to omp_lib's omp_get_num_threads and omp_set_num_threads
93e32b809SRazvan Lupusoru! get lowered even though their implementation is not in the omp_lib module
103e32b809SRazvan Lupusoru! (and this matters because this is an intrinsic module - and calls to
113e32b809SRazvan Lupusoru! intrinsics are specially resolved).
123e32b809SRazvan Lupusoru
133e32b809SRazvan Lupusoruprogram main
143e32b809SRazvan Lupusoru  use omp_lib
153e32b809SRazvan Lupusoru  integer(omp_integer_kind) :: num_threads
163e32b809SRazvan Lupusoru  integer(omp_integer_kind), parameter :: requested_num_threads = 4
173e32b809SRazvan Lupusoru  call omp_set_num_threads(requested_num_threads)
183e32b809SRazvan Lupusoru  num_threads = omp_get_num_threads()
193e32b809SRazvan Lupusoru  print *, num_threads
203e32b809SRazvan Lupusoruend program
213e32b809SRazvan Lupusoru
223e32b809SRazvan Lupusoru!CHECK-NOT: not yet implemented: intrinsic: omp_set_num_threads
233e32b809SRazvan Lupusoru!CHECK-NOT: not yet implemented: intrinsic: omp_get_num_threads
243e32b809SRazvan Lupusoru!CHECK: fir.call @omp_set_num_threads
253e32b809SRazvan Lupusoru!CHECK: fir.call @omp_get_num_threads
26