* Updating the cached HAVE_COMPATIBLE_ILOGB0_EXITCODE and HAVE_COMPATIBLE_ILOGBNAN_EXITCODE to 1
* Fixing MaxMagnitude and MinMagnitude to correctly handle the case when ax and ay are equal
CACHE STRING "Result from TRY_RUN" FORCE)
SET( HAVE_COMPATIBLE_ILOGB0_EXITCODE
- 0
+ 1
CACHE STRING "Result from TRY_RUN" FORCE)
SET( HAVE_COMPATIBLE_ILOGBNAN_EXITCODE
- 0
+ 1
CACHE STRING "Result from TRY_RUN" FORCE)
SET( REALPATH_SUPPORTS_NONEXISTENT_FILES_EXITCODE
CACHE STRING "Result from TRY_RUN" FORCE)
SET( HAVE_COMPATIBLE_ILOGB0_EXITCODE
- 0
+ 1
CACHE STRING "Result from TRY_RUN" FORCE)
SET( HAVE_COMPATIBLE_ILOGBNAN_EXITCODE
- 0
+ 1
CACHE STRING "Result from TRY_RUN" FORCE)
SET( REALPATH_SUPPORTS_NONEXISTENT_FILES_EXITCODE
set_cache_value(HAVE_COMPATIBLE_ACOS_EXITCODE 0)
set_cache_value(HAVE_COMPATIBLE_ASIN_EXITCODE 0)
set_cache_value(HAVE_COMPATIBLE_ATAN2_EXITCODE 0)
- set_cache_value(HAVE_COMPATIBLE_ILOGB0_EXITCODE 0)
- set_cache_value(HAVE_COMPATIBLE_ILOGBNAN_EXITCODE 0)
+ set_cache_value(HAVE_COMPATIBLE_ILOGB0_EXITCODE 1)
+ set_cache_value(HAVE_COMPATIBLE_ILOGBNAN_EXITCODE 1)
set_cache_value(HAVE_COMPATIBLE_LOG10_EXITCODE 0)
set_cache_value(HAVE_COMPATIBLE_LOG_EXITCODE 0)
set_cache_value(HAVE_COMPATIBLE_POW_EXITCODE 0)
}
// We do this comparison first and separately to handle the -0.0 to +0.0 comparision
- // * Doing (x < y) first could get transformed into (y >= x) by the JIT which would
+ // * Doing (ax < ay) first could get transformed into (ay >= ax) by the JIT which would
// then return an incorrect value
- if (x == y)
+ double ax = Abs(x);
+ double ay = Abs(y);
+
+ if (ax == ay)
{
return double.IsNegative(x) ? y : x;
}
- return (Abs(x) < Abs(y)) ? y : x;
+ return (ax < ay) ? y : x;
}
[NonVersionable]
}
// We do this comparison first and separately to handle the -0.0 to +0.0 comparision
- // * Doing (x < y) first could get transformed into (y >= x) by the JIT which would
+ // * Doing (ax < ay) first could get transformed into (ay >= ax) by the JIT which would
// then return an incorrect value
- if (x == y)
+ double ax = Abs(x);
+ double ay = Abs(y);
+
+ if (ax == ay)
{
return double.IsNegative(x) ? x : y;
}
- return (Abs(x) < Abs(y)) ? x : y;
+ return (ax < ay) ? x : y;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
}
// We do this comparison first and separately to handle the -0.0 to +0.0 comparision
- // * Doing (x < y) first could get transformed into (y >= x) by the JIT which would
+ // * Doing (ax < ay) first could get transformed into (ay >= ax) by the JIT which would
// then return an incorrect value
- if (x == y)
+ float ax = Abs(x);
+ float ay = Abs(y);
+
+ if (ax == ay)
{
return float.IsNegative(x) ? y : x;
}
- return (Abs(x) < Abs(y)) ? y : x;
+ return (ax < ay) ? y : x;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
}
// We do this comparison first and separately to handle the -0.0 to +0.0 comparision
- // * Doing (x < y) first could get transformed into (y >= x) by the JIT which would
+ // * Doing (ax < ay) first could get transformed into (ay >= ax) by the JIT which would
// then return an incorrect value
- if (x == y)
+ float ax = Abs(x);
+ float ay = Abs(y);
+
+ if (ax == ay)
{
return float.IsNegative(x) ? x : y;
}
- return (Abs(x) < Abs(y)) ? x : y;
+ return (ax < ay) ? x : y;
}
[Intrinsic]