Made TensorIntDiv.h compile with MSVC

This commit is contained in:
Benoit Steiner 2015-02-25 23:54:43 -08:00
parent 27f3fb2bcc
commit bffb6bdf45

View File

@ -29,14 +29,16 @@ namespace Eigen {
namespace internal {
namespace {
// Note: result is undefined if val == 0
template <typename T>
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE int count_leading_zeros(const T val)
{
#ifndef __CUDA_ARCH__
if (sizeof(T) == 8) {
return __builtin_clzl(val);
}
return __builtin_clz(val);
return __builtin_clz(static_cast<uint32_t>(val));
#elif EIGEN_COMP_MSVC
DWORD leading_zero = 0;
_BitScanReverse( &leading_zero, value);
return 31 - leading_zero;
#else
return __clz(val);
#endif