Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions Inc/DirectXMathVector.inl
Original file line number Diff line number Diff line change
Expand Up @@ -2186,7 +2186,7 @@ inline XMVECTOR XM_CALLCONV XMVectorIsNaN(FXMVECTOR V) noexcept
return Control.v;

#elif defined(_XM_ARM_NEON_INTRINSICS_)
#if defined(__clang__) && defined(__FINITE_MATH_ONLY__)
#if defined(__clang__) && __FINITE_MATH_ONLY__
XMVECTORU32 vResult = { { {
isnan(vgetq_lane_f32(V, 0)) ? 0xFFFFFFFFU : 0,
isnan(vgetq_lane_f32(V, 1)) ? 0xFFFFFFFFU : 0,
Expand All @@ -2200,7 +2200,7 @@ inline XMVECTOR XM_CALLCONV XMVectorIsNaN(FXMVECTOR V) noexcept
return vreinterpretq_f32_u32(vmvnq_u32(vTempNan));
#endif
#elif defined(_XM_SSE_INTRINSICS_)
#if defined(__clang__) && defined(__FINITE_MATH_ONLY__)
#if defined(__clang__) && __FINITE_MATH_ONLY__
XM_ALIGNED_DATA(16) float tmp[4];
_mm_store_ps(tmp, V);
XMVECTORU32 vResult = { { {
Expand Down Expand Up @@ -6653,7 +6653,7 @@ inline bool XM_CALLCONV XMVector2IsNaN(FXMVECTOR V) noexcept
return (XMISNAN(V.vector4_f32[0]) ||
XMISNAN(V.vector4_f32[1]));
#elif defined(_XM_ARM_NEON_INTRINSICS_)
#if defined(__clang__) && defined(__FINITE_MATH_ONLY__)
#if defined(__clang__) && __FINITE_MATH_ONLY__
return isnan(vgetq_lane_f32(V, 0)) || isnan(vgetq_lane_f32(V, 1));
#else
float32x2_t VL = vget_low_f32(V);
Expand All @@ -6663,7 +6663,7 @@ inline bool XM_CALLCONV XMVector2IsNaN(FXMVECTOR V) noexcept
return (vget_lane_u64(vreinterpret_u64_u32(vTempNan), 0) != 0xFFFFFFFFFFFFFFFFU);
#endif
#elif defined(_XM_SSE_INTRINSICS_)
#if defined(__clang__) && defined(__FINITE_MATH_ONLY__)
#if defined(__clang__) && __FINITE_MATH_ONLY__
XM_ALIGNED_DATA(16) float tmp[4];
_mm_store_ps(tmp, V);
return isnan(tmp[0]) || isnan(tmp[1]);
Expand Down Expand Up @@ -9418,7 +9418,7 @@ inline bool XM_CALLCONV XMVector3IsNaN(FXMVECTOR V) noexcept
XMISNAN(V.vector4_f32[2]));

#elif defined(_XM_ARM_NEON_INTRINSICS_)
#if defined(__clang__) && defined(__FINITE_MATH_ONLY__)
#if defined(__clang__) && __FINITE_MATH_ONLY__
return isnan(vgetq_lane_f32(V, 0)) || isnan(vgetq_lane_f32(V, 1)) || isnan(vgetq_lane_f32(V, 2));
#else
// Test against itself. NaN is always not equal
Expand All @@ -9429,7 +9429,7 @@ inline bool XM_CALLCONV XMVector3IsNaN(FXMVECTOR V) noexcept
return ((vget_lane_u32(vreinterpret_u32_u16(vTemp2.val[1]), 1) & 0xFFFFFFU) != 0xFFFFFFU);
#endif
#elif defined(_XM_SSE_INTRINSICS_)
#if defined(__clang__) && defined(__FINITE_MATH_ONLY__)
#if defined(__clang__) && __FINITE_MATH_ONLY__
XM_ALIGNED_DATA(16) float tmp[4];
_mm_store_ps(tmp, V);
return isnan(tmp[0]) || isnan(tmp[1]) || isnan(tmp[2]);
Expand Down Expand Up @@ -13309,7 +13309,7 @@ inline bool XM_CALLCONV XMVector4IsNaN(FXMVECTOR V) noexcept
XMISNAN(V.vector4_f32[2]) ||
XMISNAN(V.vector4_f32[3]));
#elif defined(_XM_ARM_NEON_INTRINSICS_)
#if defined(__clang__) && defined(__FINITE_MATH_ONLY__)
#if defined(__clang__) && __FINITE_MATH_ONLY__
return isnan(vgetq_lane_f32(V, 0)) || isnan(vgetq_lane_f32(V, 1)) || isnan(vgetq_lane_f32(V, 2)) || isnan(vgetq_lane_f32(V, 3));
#else
// Test against itself. NaN is always not equal
Expand All @@ -13320,7 +13320,7 @@ inline bool XM_CALLCONV XMVector4IsNaN(FXMVECTOR V) noexcept
return (vget_lane_u32(vreinterpret_u32_u16(vTemp2.val[1]), 1) != 0xFFFFFFFFU);
#endif
#elif defined(_XM_SSE_INTRINSICS_)
#if defined(__clang__) && defined(__FINITE_MATH_ONLY__)
#if defined(__clang__) && __FINITE_MATH_ONLY__
XM_ALIGNED_DATA(16) float tmp[4];
_mm_store_ps(tmp, V);
return isnan(tmp[0]) || isnan(tmp[1]) || isnan(tmp[2]) || isnan(tmp[3]);
Expand Down
Loading