summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/core/src/umath/loops_unary_fp.dispatch.c.src9
1 files changed, 7 insertions, 2 deletions
diff --git a/numpy/core/src/umath/loops_unary_fp.dispatch.c.src b/numpy/core/src/umath/loops_unary_fp.dispatch.c.src
index fba3e23c8..543402f6f 100644
--- a/numpy/core/src/umath/loops_unary_fp.dispatch.c.src
+++ b/numpy/core/src/umath/loops_unary_fp.dispatch.c.src
@@ -111,8 +111,13 @@ static NPY_INLINE npyv_u@ssfx@
npyv_isnan_@sfx@(npyv_@sfx@ v)
{
// (v != v) >> (size - 1)
- npyv_@sfx@ r = npyv_cvt_@sfx@_b@ssfx@(npyv_cmpneq_@sfx@(v, v));
- return npyv_shri_u@ssfx@(npyv_reinterpret_u@ssfx@_@sfx@(r), (sizeof(npyv_lanetype_@sfx@)*8)-1);
+#if defined(NPY_HAVE_SSE2) || defined (NPY_HAVE_SSE41)
+ // sse npyv_cmpneq_@sfx@ define includes a cast already
+ npyv_u@ssfx@ r = npyv_cmpneq_@sfx@(v, v);
+#else
+ npyv_u@ssfx@ r = npyv_cvt_u@ssfx@_b@ssfx@(npyv_cmpneq_@sfx@(v, v));
+#endif
+ return npyv_shri_u@ssfx@(r, (sizeof(npyv_lanetype_@sfx@)*8)-1);
}
static NPY_INLINE npyv_u@ssfx@