blob: c9640b15b18c8a2d6d4f3dd92379701ae1ec5164 [file] [log] [blame]
#pragma once
#include<algorithm>
namespace at {
namespace native {
// returns 2**floor(log2(n))
static int lastPow2(unsigned int n) {
n |= (n >> 1);
n |= (n >> 2);
n |= (n >> 4);
n |= (n >> 8);
n |= (n >> 16);
return std::max<int>(1, n - (n >> 1));
}
} // namespace native
} // namespace at