mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-12-21 07:19:46 +08:00
Fix avx512 plog(NaN) to return NaN instead of +inf
This commit is contained in:
parent
b3f66d29a5
commit
97e2c808e9
@ -64,11 +64,9 @@ plog<Packet16f>(const Packet16f& _x) {
|
|||||||
_EIGEN_DECLARE_CONST_Packet16f(cephes_log_q2, 0.693359375f);
|
_EIGEN_DECLARE_CONST_Packet16f(cephes_log_q2, 0.693359375f);
|
||||||
|
|
||||||
// invalid_mask is set to true when x is NaN
|
// invalid_mask is set to true when x is NaN
|
||||||
__mmask16 invalid_mask =
|
__mmask16 invalid_mask = _mm512_cmp_ps_mask(x, _mm512_setzero_ps(), _CMP_NGE_UQ);
|
||||||
_mm512_cmp_ps_mask(x, _mm512_setzero_ps(), _CMP_NGE_UQ);
|
__mmask16 iszero_mask = _mm512_cmp_ps_mask(x, _mm512_setzero_ps(), _CMP_EQ_OQ);
|
||||||
__mmask16 iszero_mask =
|
|
||||||
_mm512_cmp_ps_mask(x, _mm512_setzero_ps(), _CMP_EQ_UQ);
|
|
||||||
|
|
||||||
// Truncate input values to the minimum positive normal.
|
// Truncate input values to the minimum positive normal.
|
||||||
x = pmax(x, p16f_min_norm_pos);
|
x = pmax(x, p16f_min_norm_pos);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user