Skip to content

Commit d0b61ea

Browse files
committed
MSVC compatibility fix.
1 parent 69262ff commit d0b61ea

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

numeric_types/half.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,17 @@ struct half;
1111
static half halfFromFloat(float f);
1212
static float halfToFloat(half h);
1313

14+
#ifdef _MSC_VER
15+
#include <intrin.h>
16+
static inline uint16_t __builtin_clz(uint16_t value) {
17+
unsigned long leading_zero = 0;
18+
if (_BitScanReverse(&leading_zero, static_cast<unsigned long>(value))) {
19+
return 15 - leading_zero;
20+
}
21+
return 16;
22+
}
23+
#endif
24+
1425
/**
1526
* Experimental implementation of half-precision 16-bit floating point numbers.
1627
*/

0 commit comments

Comments
 (0)