// clang-format off
// RUN: %libomptarget-compileopt-generic
// RUN: env LIBOMPTARGET_INFO=16 \
// RUN:   %libomptarget-run-generic 2>&1 | %fcheck-generic --check-prefixes=CHECK,SPMD
// RUN: %libomptarget-compileopt-generic -mllvm --openmp-opt-disable-spmdization \
// RUN:   -Xoffload-linker -mllvm=--openmp-opt-disable-spmdization
// RUN: env LIBOMPTARGET_INFO=16 \
// RUN:   %libomptarget-run-generic 2>&1 | %fcheck-generic --check-prefixes=CHECK,GENERIC
// clang-format on

// REQUIRES: gpu
// XFAIL: intelgpu

#include <omp.h>
#include <stdio.h>

__attribute__((weak)) void noop() {}

int main(void) {
  int nthreads = 0, ip = 0, lvl = 0, alvl = 0, nested = 0, tid = 0, maxt = 0;

#pragma omp target map(from : nthreads, ip, lvl, alvl, nested, tid, maxt)
  {
    nthreads = omp_get_num_threads();
    ip = omp_in_parallel();
    lvl = omp_get_level();
    alvl = omp_get_active_level();
    nested = omp_get_nested();
    tid = omp_get_thread_num();
    maxt = omp_get_max_threads();
    #pragma omp parallel
    noop();
  }
  printf("NumThreads: %i, InParallel: %i, Level: %i, ActiveLevel: %i, Nested: %i, "
         "ThreadNum: %i, MaxThreads: %i\n",
         nthreads, ip, lvl, alvl, nested, tid, maxt);
  // GENERIC: Generic mode
  // SPMD: Generic-SPMD mode
  // CHECK: NumThreads: 1
  // CHECK: InParallel: 0
  // CHECK: Level: 0
  // CHECK: ActiveLevel: 0
  // CHECK: Nested: 0
  // CHECK: ThreadNum: 0
  // CHECK: MaxThreads:
  return 0;
}
