summaryrefslogtreecommitdiff
path: root/offload/DeviceRTL/src/Mapping.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'offload/DeviceRTL/src/Mapping.cpp')
-rw-r--r--offload/DeviceRTL/src/Mapping.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/offload/DeviceRTL/src/Mapping.cpp b/offload/DeviceRTL/src/Mapping.cpp
index 4f39d2a299ee..c1ce878746a6 100644
--- a/offload/DeviceRTL/src/Mapping.cpp
+++ b/offload/DeviceRTL/src/Mapping.cpp
@@ -364,8 +364,30 @@ _TGT_KERNEL_LANGUAGE(block_id, getBlockIdInKernel)
_TGT_KERNEL_LANGUAGE(block_dim, getNumberOfThreadsInBlock)
_TGT_KERNEL_LANGUAGE(grid_dim, getNumberOfBlocksInKernel)
-extern "C" uint64_t ompx_ballot_sync(uint64_t mask, int pred) {
+extern "C" {
+uint64_t ompx_ballot_sync(uint64_t mask, int pred) {
return utils::ballotSync(mask, pred);
}
+int ompx_shfl_down_sync_i(uint64_t mask, int var, unsigned delta, int width) {
+ return utils::shuffleDown(mask, var, delta, width);
+}
+
+float ompx_shfl_down_sync_f(uint64_t mask, float var, unsigned delta,
+ int width) {
+ return utils::convertViaPun<float>(utils::shuffleDown(
+ mask, utils::convertViaPun<int32_t>(var), delta, width));
+}
+
+long ompx_shfl_down_sync_l(uint64_t mask, long var, unsigned delta, int width) {
+ return utils::shuffleDown(mask, var, delta, width);
+}
+
+double ompx_shfl_down_sync_d(uint64_t mask, double var, unsigned delta,
+ int width) {
+ return utils::convertViaPun<double>(utils::shuffleDown(
+ mask, utils::convertViaPun<int64_t>(var), delta, width));
+}
+}
+
#pragma omp end declare target