MCPcopy Create free account
hub / github.com/numpy/numpy / npyv_divc_s8

Function npyv_divc_s8

numpy/core/src/common/simd/avx512/arithmetic.h:169–180  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

167// divide each signed 8-bit element by divisor (round towards zero)
168NPY_FINLINE npyv_s16 npyv_divc_s16(npyv_s16 a, const npyv_s16x3 divisor);
169NPY_FINLINE npyv_s8 npyv_divc_s8(npyv_s8 a, const npyv_s8x3 divisor)
170{
171 __m512i divc_even = npyv_divc_s16(npyv_shri_s16(npyv_shli_s16(a, 8), 8), divisor);
172 __m512i divc_odd = npyv_divc_s16(npyv_shri_s16(a, 8), divisor);
173 divc_odd = npyv_shli_s16(divc_odd, 8);
174#ifdef NPY_HAVE_AVX512BW
175 return _mm512_mask_mov_epi8(divc_even, 0xAAAAAAAAAAAAAAAA, divc_odd);
176#else
177 const __m512i bmask = _mm512_set1_epi32(0x00FF00FF);
178 return npyv_select_u8(bmask, divc_even, divc_odd);
179#endif
180}
181// divide each unsigned 16-bit element by divisor
182NPY_FINLINE npyv_u16 npyv_divc_u16(npyv_u16 a, const npyv_u16x3 divisor)
183{

Callers

nothing calls this directly

Calls 2

npyv_divc_s16Function · 0.70
npyv_select_u8Function · 0.70

Tested by

no test coverage detected