[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