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

Function npyv_mul_u8

numpy/core/src/common/simd/sse/arithmetic.h:56–63  ·  view source on GitHub ↗

* Multiplication ***************************/ non-saturated

Source from the content-addressed store, hash-verified

54 ***************************/
55// non-saturated
56NPY_FINLINE __m128i npyv_mul_u8(__m128i a, __m128i b)
57{
58 const __m128i mask = _mm_set1_epi32(0xFF00FF00);
59 __m128i even = _mm_mullo_epi16(a, b);
60 __m128i odd = _mm_mullo_epi16(_mm_srai_epi16(a, 8), _mm_srai_epi16(b, 8));
61 odd = _mm_slli_epi16(odd, 8);
62 return npyv_select_u8(mask, odd, even);
63}
64#define npyv_mul_s8 npyv_mul_u8
65#define npyv_mul_u16 _mm_mullo_epi16
66#define npyv_mul_s16 _mm_mullo_epi16

Callers

nothing calls this directly

Calls 1

npyv_select_u8Function · 0.70

Tested by

no test coverage detected