SIMD
__m128 mask = _mm_cmpeq_ps(m128, m128); __m128i vi = _mm_cvttps_epi32(mask); int32_t c[4]; _mm_storeu_si128((__m128i *)c, vi); if (c[0] == 0 || c[1] == 0 || c[2] == 0 || c[3] == 0) { //NaN }
__m128 mask = _mm_cmpeq_ps(m128, m128); __m128i vi = _mm_cvttps_epi32(mask); int32_t c[4]; _mm_storeu_si128((__m128i *)c, vi); if (c[0] == 0 || c[1] == 0 || c[2] == 0 || c[3] == 0) { //NaN }