xref: /aosp_15_r20/external/pytorch/aten/src/ATen/native/cuda/LaunchUtils.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1 #pragma once
2 #include<algorithm>
3 
4 namespace at {
5 namespace native {
6 
7 // returns 2**floor(log2(n))
lastPow2(unsigned int n)8 static int lastPow2(unsigned int n) {
9   n |= (n >> 1);
10   n |= (n >> 2);
11   n |= (n >> 4);
12   n |= (n >> 8);
13   n |= (n >> 16);
14   return std::max<int>(1, n - (n >> 1));
15 }
16 
17 } // namespace native
18 } // namespace at
19