| 2420 | } |
| 2421 | |
| 2422 | NPY_FINLINE NPY_GCC_OPT_3 npyv_u16x2 |
| 2423 | count_zero_bytes_u16(const npy_uint8 **d, const npy_uint8 *end, npy_uint16 max_count) |
| 2424 | { |
| 2425 | npyv_u16x2 vsum16; |
| 2426 | vsum16.val[0] = vsum16.val[1] = npyv_zero_u16(); |
| 2427 | npy_intp lane_max = 0; |
| 2428 | while (*d < end && lane_max <= max_count - NPY_MAX_UINT8) { |
| 2429 | npyv_u8 vsum8 = count_zero_bytes_u8(d, end, NPY_MAX_UINT8); |
| 2430 | npyv_u16x2 part = npyv_expand_u16_u8(vsum8); |
| 2431 | vsum16.val[0] = npyv_add_u16(vsum16.val[0], part.val[0]); |
| 2432 | vsum16.val[1] = npyv_add_u16(vsum16.val[1], part.val[1]); |
| 2433 | lane_max += NPY_MAX_UINT8; |
| 2434 | } |
| 2435 | return vsum16; |
| 2436 | } |
| 2437 | #endif // NPY_SIMD |
| 2438 | /* |
| 2439 | * Counts the number of non-zero values in a raw array. |
no test coverage detected