Skip to content

Commit 794fab3

Browse files
committed
Optimize reverse_bits for nvptx.
Signed-off-by: JackAKirk <[email protected]>
1 parent 573470f commit 794fab3

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

sycl/include/syclcompat/util.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,11 @@ inline double cast_ints_to_double(int high32, int low32) {
161161
template <typename T> inline T reverse_bits(T a) {
162162
static_assert(std::is_unsigned<T>::value && std::is_integral<T>::value,
163163
"unsigned integer required");
164+
#if defined(__NVPTX__)
165+
unsigned result;
166+
asm volatile("brev.b32 %0, %1;" : "=r"(result) : "r"(a));
167+
return result;
168+
#endif // __NVPTX__
164169
if (!a)
165170
return 0;
166171
T mask = 0;

0 commit comments

Comments
 (0)