[libc-commits] [libc] 4e604d4 - [libc][NFC] Add u64 shuffle helpers to GPU
Joseph Huber via libc-commits
libc-commits at lists.llvm.org
Tue May 13 16:01:04 PDT 2025
Author: Joseph Huber
Date: 2025-05-13T18:00:53-05:00
New Revision: 4e604d46681f722b1def10ce72c89046dac39e63
URL: https://github.com/llvm/llvm-project/commit/4e604d46681f722b1def10ce72c89046dac39e63
DIFF: https://github.com/llvm/llvm-project/commit/4e604d46681f722b1def10ce72c89046dac39e63.diff
LOG: [libc][NFC] Add u64 shuffle helpers to GPU
Summary:
Precommit for later use.
Added:
Modified:
libc/src/__support/GPU/utils.h
Removed:
################################################################################
diff --git a/libc/src/__support/GPU/utils.h b/libc/src/__support/GPU/utils.h
index 0fd3a6498b865..1b3e6edfc4e0d 100644
--- a/libc/src/__support/GPU/utils.h
+++ b/libc/src/__support/GPU/utils.h
@@ -92,6 +92,18 @@ LIBC_INLINE uint32_t shuffle(uint64_t lane_mask, uint32_t idx, uint32_t x,
return __gpu_shuffle_idx_u32(lane_mask, idx, x, width);
}
+LIBC_INLINE uint64_t shuffle(uint64_t lane_mask, uint32_t idx, uint64_t x,
+ uint32_t width = __gpu_num_lanes()) {
+ return __gpu_shuffle_idx_u64(lane_mask, idx, x, width);
+}
+
+template <typename T>
+LIBC_INLINE T *shuffle(uint64_t lane_mask, uint32_t idx, T *x,
+ uint32_t width = __gpu_num_lanes()) {
+ return reinterpret_cast<T *>(__gpu_shuffle_idx_u64(
+ lane_mask, idx, reinterpret_cast<uintptr_t>(x), width));
+}
+
LIBC_INLINE uint64_t match_any(uint64_t lane_mask, uint32_t x) {
return __gpu_match_any_u32(lane_mask, x);
}
More information about the libc-commits
mailing list