1597d2f76STim Gymnich // clang-format off 2597d2f76STim Gymnich // RUN: %libomptarget-compilexx-generic && env LIBOMPTARGET_REUSE_BLOCKS_FOR_HIGH_TRIP_COUNT=False %libomptarget-run-generic 2>&1 | %fcheck-generic 3597d2f76STim Gymnich // RUN: %libomptarget-compilexx-generic && %libomptarget-run-generic 2>&1 | %fcheck-generic --check-prefix=DEFAULT 4597d2f76STim Gymnich 5597d2f76STim Gymnich // UNSUPPORTED: aarch64-unknown-linux-gnu 6597d2f76STim Gymnich // UNSUPPORTED: aarch64-unknown-linux-gnu-LTO 7*1a0cf245SJan Patrick Lehr // UNSUPPORTED: x86_64-unknown-linux-gnu 8*1a0cf245SJan Patrick Lehr // UNSUPPORTED: x86_64-unknown-linux-gnu-LTO 9597d2f76STim Gymnich // UNSUPPORTED: s390x-ibm-linux-gnu 10597d2f76STim Gymnich // UNSUPPORTED: s390x-ibm-linux-gnu-LTO 11597d2f76STim Gymnich // clang-format on 12597d2f76STim Gymnich 13597d2f76STim Gymnich /* 14597d2f76STim Gymnich Check if there is a thread for each loop iteration 15597d2f76STim Gymnich */ 16597d2f76STim Gymnich #include <omp.h> 17597d2f76STim Gymnich #include <stdio.h> 18597d2f76STim Gymnich 19597d2f76STim Gymnich int main() { 20597d2f76STim Gymnich int N = 819200; 21597d2f76STim Gymnich int num_threads[N]; 22597d2f76STim Gymnich 23597d2f76STim Gymnich #pragma omp target teams distribute parallel for 24597d2f76STim Gymnich for (int j = 0; j < N; j++) { 25597d2f76STim Gymnich num_threads[j] = omp_get_num_threads() * omp_get_num_teams(); 26597d2f76STim Gymnich } 27597d2f76STim Gymnich 28597d2f76STim Gymnich if (num_threads[0] == N) 29597d2f76STim Gymnich // CHECK: PASS 30597d2f76STim Gymnich printf("PASS\n"); 31597d2f76STim Gymnich else 32597d2f76STim Gymnich // DEFAULT: FAIL 33597d2f76STim Gymnich printf("FAIL: num_threads: %d\n != N: %d", num_threads[0], N); 34597d2f76STim Gymnich return 0; 35597d2f76STim Gymnich } 36