diff options
Diffstat (limited to 'numpy')
| -rw-r--r-- | numpy/core/src/umath/loops_unary_fp.dispatch.c.src | 9 |
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@ |
