1
0
mirror of https://github.com/microsoft/DirectXMath synced 2024-11-24 21:20:13 +00:00

Add float_control pragmas for nan tests

This commit is contained in:
Chuck Walbourn 2019-04-03 13:34:47 -07:00
parent ecfb475440
commit 1654282608
2 changed files with 45 additions and 0 deletions

View File

@ -21,6 +21,11 @@
//------------------------------------------------------------------------------
#if !defined(_XM_NO_INTRINSICS_) && !defined(__clang__) && !defined(__INTEL_COMPILER)
#pragma float_control(push)
#pragma float_control(precise, on)
#endif
// Return true if any entry in the matrix is NaN
inline bool XM_CALLCONV XMMatrixIsNaN
(
@ -84,6 +89,10 @@ inline bool XM_CALLCONV XMMatrixIsNaN
#endif
}
#if !defined(_XM_NO_INTRINSICS_) && !defined(__clang__) && !defined(__INTEL_COMPILER)
#pragma float_control(pop)
#endif
//------------------------------------------------------------------------------
// Return true if any entry in the matrix is +/-INF

View File

@ -2170,6 +2170,11 @@ inline XMVECTOR XM_CALLCONV XMVectorInBoundsR
//------------------------------------------------------------------------------
#if !defined(_XM_NO_INTRINSICS_) && !defined(__clang__) && !defined(__INTEL_COMPILER)
#pragma float_control(push)
#pragma float_control(precise, on)
#endif
inline XMVECTOR XM_CALLCONV XMVectorIsNaN
(
FXMVECTOR V
@ -2196,6 +2201,10 @@ inline XMVECTOR XM_CALLCONV XMVectorIsNaN
#endif
}
#if !defined(_XM_NO_INTRINSICS_) && !defined(__clang__) && !defined(__INTEL_COMPILER)
#pragma float_control(pop)
#endif
//------------------------------------------------------------------------------
inline XMVECTOR XM_CALLCONV XMVectorIsInfinite
@ -6743,6 +6752,11 @@ inline bool XM_CALLCONV XMVector2InBounds
//------------------------------------------------------------------------------
#if !defined(_XM_NO_INTRINSICS_) && !defined(__clang__) && !defined(__INTEL_COMPILER)
#pragma float_control(push)
#pragma float_control(precise, on)
#endif
inline bool XM_CALLCONV XMVector2IsNaN
(
FXMVECTOR V
@ -6765,6 +6779,10 @@ inline bool XM_CALLCONV XMVector2IsNaN
#endif
}
#if !defined(_XM_NO_INTRINSICS_) && !defined(__clang__) && !defined(__INTEL_COMPILER)
#pragma float_control(pop)
#endif
//------------------------------------------------------------------------------
inline bool XM_CALLCONV XMVector2IsInfinite
@ -9122,6 +9140,11 @@ inline bool XM_CALLCONV XMVector3InBounds
//------------------------------------------------------------------------------
#if !defined(_XM_NO_INTRINSICS_) && !defined(__clang__) && !defined(__INTEL_COMPILER)
#pragma float_control(push)
#pragma float_control(precise, on)
#endif
inline bool XM_CALLCONV XMVector3IsNaN
(
FXMVECTOR V
@ -9148,6 +9171,10 @@ inline bool XM_CALLCONV XMVector3IsNaN
#endif
}
#if !defined(_XM_NO_INTRINSICS_) && !defined(__clang__) && !defined(__INTEL_COMPILER)
#pragma float_control(pop)
#endif
//------------------------------------------------------------------------------
inline bool XM_CALLCONV XMVector3IsInfinite
@ -13114,6 +13141,11 @@ inline bool XM_CALLCONV XMVector4InBounds
//------------------------------------------------------------------------------
#if !defined(_XM_NO_INTRINSICS_) && !defined(__clang__) && !defined(__INTEL_COMPILER)
#pragma float_control(push)
#pragma float_control(precise, on)
#endif
inline bool XM_CALLCONV XMVector4IsNaN
(
FXMVECTOR V
@ -13139,6 +13171,10 @@ inline bool XM_CALLCONV XMVector4IsNaN
#endif
}
#if !defined(_XM_NO_INTRINSICS_) && !defined(__clang__) && !defined(__INTEL_COMPILER)
#pragma float_control(pop)
#endif
//------------------------------------------------------------------------------
inline bool XM_CALLCONV XMVector4IsInfinite