1212	#include  < immintrin.h> 
1313#endif 
1414
15- #if  defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
15+ #if  defined(_MSC_VER) && !defined(__clang__) &&  (defined(_M_ARM) || defined(_M_ARM64))
1616	#include  < intrin.h> 
1717#endif 
1818
@@ -24,7 +24,7 @@ static inline float fp32_from_bits(uint32_t w) {
2424	return  __uint_as_float ((unsigned  int ) w);
2525#elif  defined(__INTEL_COMPILER)
2626	return  _castu32_f32 (w);
27- #elif  defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
27+ #elif  defined(_MSC_VER) && !defined(__clang__) &&  (defined(_M_ARM) || defined(_M_ARM64))
2828	return  _CopyFloatFromInt32 ((__int32) w);
2929#else 
3030	union  {
@@ -42,7 +42,7 @@ static inline uint32_t fp32_to_bits(float f) {
4242	return  (uint32_t ) __float_as_uint (f);
4343#elif  defined(__INTEL_COMPILER)
4444	return  _castf32_u32 (f);
45- #elif  defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
45+ #elif  defined(_MSC_VER) && !defined(__clang__) &&  (defined(_M_ARM) || defined(_M_ARM64))
4646	return  (uint32_t ) _CopyInt32FromFloat (f);
4747#else 
4848	union  {
@@ -60,7 +60,7 @@ static inline double fp64_from_bits(uint64_t w) {
6060	return  __longlong_as_double ((long  long ) w);
6161#elif  defined(__INTEL_COMPILER)
6262	return  _castu64_f64 (w);
63- #elif  defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
63+ #elif  defined(_MSC_VER) && !defined(__clang__) &&  (defined(_M_ARM) || defined(_M_ARM64))
6464	return  _CopyDoubleFromInt64 ((__int64) w);
6565#else 
6666	union  {
@@ -78,7 +78,7 @@ static inline uint64_t fp64_to_bits(double f) {
7878	return  (uint64_t ) __double_as_longlong (f);
7979#elif  defined(__INTEL_COMPILER)
8080	return  _castf64_u64 (f);
81- #elif  defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
81+ #elif  defined(_MSC_VER) && !defined(__clang__) &&  (defined(_M_ARM) || defined(_M_ARM64))
8282	return  (uint64_t ) _CopyInt64FromDouble (f);
8383#else 
8484	union  {
0 commit comments