@@ -622,10 +622,10 @@ static inline void volk_32f_log2_32f_u_avx512dq(float* bVector,
622622 __m512 aVal = _mm512_loadu_ps (aPtr);
623623
624624 // Use fpclass for special value detection (AVX512DQ feature)
625- // 0x01 = QNaN, 0x80 = SNaN, 0x10 = +Inf, 0x04 = +Zero, 0x02 = -Zero
625+ // 0x01 = QNaN, 0x02 = +0, 0x04 = -0, 0x08 = +Inf, 0x10 = -Inf, 0x80 = SNaN
626626 __mmask16 nan_mask = _mm512_fpclass_ps_mask (aVal, 0x81 ); // NaN (QNaN | SNaN)
627627 __mmask16 zero_mask = _mm512_fpclass_ps_mask (aVal, 0x06 ); // Zero (+0 | -0)
628- __mmask16 inf_mask = _mm512_fpclass_ps_mask (aVal, 0x10 ); // +Inf only
628+ __mmask16 inf_mask = _mm512_fpclass_ps_mask (aVal, 0x08 ); // +Inf only
629629 __mmask16 neg_mask = _mm512_cmp_ps_mask (aVal, _mm512_setzero_ps (), _CMP_LT_OQ);
630630 __mmask16 invalid_mask = _kor_mask16 (nan_mask, neg_mask); // neg or NaN -> NaN
631631
@@ -685,9 +685,10 @@ static inline void volk_32f_log2_32f_a_avx512dq(float* bVector,
685685 __m512 aVal = _mm512_load_ps (aPtr);
686686
687687 // Use fpclass for special value detection (AVX512DQ feature)
688+ // 0x01 = QNaN, 0x02 = +0, 0x04 = -0, 0x08 = +Inf, 0x10 = -Inf, 0x80 = SNaN
688689 __mmask16 nan_mask = _mm512_fpclass_ps_mask (aVal, 0x81 ); // NaN (QNaN | SNaN)
689690 __mmask16 zero_mask = _mm512_fpclass_ps_mask (aVal, 0x06 ); // Zero (+0 | -0)
690- __mmask16 inf_mask = _mm512_fpclass_ps_mask (aVal, 0x10 ); // +Inf only
691+ __mmask16 inf_mask = _mm512_fpclass_ps_mask (aVal, 0x08 ); // +Inf only
691692 __mmask16 neg_mask = _mm512_cmp_ps_mask (aVal, _mm512_setzero_ps (), _CMP_LT_OQ);
692693 __mmask16 invalid_mask = _kor_mask16 (nan_mask, neg_mask); // neg or NaN -> NaN
693694
0 commit comments