diff options
| author | Shilei Tian <i@tianshilei.me> | 2024-05-26 00:57:50 -0400 |
|---|---|---|
| committer | Shilei Tian <i@tianshilei.me> | 2024-05-26 00:57:50 -0400 |
| commit | 7b4865582299294455bc816358fd88a9c6e5e0be (patch) | |
| tree | ccf01a80a61d58bc1fbd4a01ec39e65017c26979 /offload/DeviceRTL/src/Mapping.cpp | |
| parent | ac17fbc07682c40a08a429cd061a2c57662570a4 (diff) | |
Reapply "[OpenMP][OMPX] Add shfl_down_sync (#93311)"
This reverts commit 9b31cc71d66064dfaf2afabf4a835211321bb4a0.
Diffstat (limited to 'offload/DeviceRTL/src/Mapping.cpp')
| -rw-r--r-- | offload/DeviceRTL/src/Mapping.cpp | 24 |
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 |
