30 lines
612 B
C
30 lines
612 B
C
// RUN: %libomptarget-compile-run-and-check-generic
|
|
|
|
#include <omp.h>
|
|
#include <stdio.h>
|
|
|
|
#pragma omp declare target
|
|
int isHost;
|
|
#pragma omp end declare target
|
|
|
|
int main(void) {
|
|
isHost = -1;
|
|
|
|
#pragma omp target enter data map(to : isHost)
|
|
|
|
#pragma omp target
|
|
{ isHost = omp_is_initial_device(); }
|
|
#pragma omp target update from(isHost)
|
|
|
|
if (isHost < 0) {
|
|
printf("Runtime error, isHost=%d\n", isHost);
|
|
}
|
|
|
|
#pragma omp target exit data map(delete : isHost)
|
|
|
|
// CHECK: Target region executed on the device
|
|
printf("Target region executed on the %s\n", isHost ? "host" : "device");
|
|
|
|
return isHost;
|
|
}
|