summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
authorSayed Adel <seiko@imavr.com>2021-07-02 04:58:37 +0200
committerSayed Adel <seiko@imavr.com>2021-07-02 04:58:37 +0200
commit820cb97bcad0d171c9efbb8fb8d7e987a0514aa9 (patch)
tree40a6a2f01dfb5c400b0f642c01a63b61828c6c70 /numpy
parent45c57078fd599194b49148fb66808f03490ee423 (diff)
downloadnumpy-820cb97bcad0d171c9efbb8fb8d7e987a0514aa9.tar.gz
BUG, SIMD: Fix infinite loop during count non-zero on GCC-11
The issue appears when the compiler miss inlining a function that returns or accepts a SIMD vector.
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/src/multiarray/item_selection.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/numpy/core/src/multiarray/item_selection.c b/numpy/core/src/multiarray/item_selection.c
index fb354ce54..2b8ea9e79 100644
--- a/numpy/core/src/multiarray/item_selection.c
+++ b/numpy/core/src/multiarray/item_selection.c
@@ -2131,7 +2131,7 @@ count_nonzero_bytes_384(const npy_uint64 * w)
#if NPY_SIMD
/* Count the zero bytes between `*d` and `end`, updating `*d` to point to where to keep counting from. */
-static NPY_INLINE NPY_GCC_OPT_3 npyv_u8
+NPY_FINLINE NPY_GCC_OPT_3 npyv_u8
count_zero_bytes_u8(const npy_uint8 **d, const npy_uint8 *end, npy_uint8 max_count)
{
const npyv_u8 vone = npyv_setall_u8(1);
@@ -2150,7 +2150,7 @@ count_zero_bytes_u8(const npy_uint8 **d, const npy_uint8 *end, npy_uint8 max_cou
return vsum8;
}
-static NPY_INLINE NPY_GCC_OPT_3 npyv_u16x2
+NPY_FINLINE NPY_GCC_OPT_3 npyv_u16x2
count_zero_bytes_u16(const npy_uint8 **d, const npy_uint8 *end, npy_uint16 max_count)
{
npyv_u16x2 vsum16;