mirror of git://gcc.gnu.org/git/gcc.git
45 lines
747 B
C
45 lines
747 B
C
#include <omp.h>
|
|
#include <gomp-constants.h>
|
|
|
|
/* static */ int
|
|
device_arch_nvptx (void)
|
|
{
|
|
return GOMP_DEVICE_NVIDIA_PTX;
|
|
}
|
|
|
|
/* static */ int
|
|
device_arch_gcn (void)
|
|
{
|
|
return GOMP_DEVICE_GCN;
|
|
}
|
|
|
|
#pragma omp declare variant (device_arch_nvptx) match(construct={target},device={arch(nvptx)})
|
|
#pragma omp declare variant (device_arch_gcn) match(construct={target},device={arch(gcn)})
|
|
/* static */ int
|
|
device_arch (void)
|
|
{
|
|
return GOMP_DEVICE_DEFAULT;
|
|
}
|
|
|
|
static int
|
|
on_device_arch (int d)
|
|
{
|
|
int d_cur;
|
|
#pragma omp target map(from:d_cur)
|
|
d_cur = device_arch ();
|
|
|
|
return d_cur == d;
|
|
}
|
|
|
|
int
|
|
on_device_arch_nvptx ()
|
|
{
|
|
return on_device_arch (GOMP_DEVICE_NVIDIA_PTX);
|
|
}
|
|
|
|
int
|
|
on_device_arch_gcn ()
|
|
{
|
|
return on_device_arch (GOMP_DEVICE_GCN);
|
|
}
|