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

Function libdivide_mullhi_u32_vector

numpy/core/include/numpy/libdivide/libdivide.h:1232–1238  ·  view source on GitHub ↗

Here, b is assumed to contain one 32-bit value repeated.

Source from the content-addressed store, hash-verified

1230
1231// Here, b is assumed to contain one 32-bit value repeated.
1232static inline __m512i libdivide_mullhi_u32_vector(__m512i a, __m512i b) {
1233 __m512i hi_product_0Z2Z = _mm512_srli_epi64(_mm512_mul_epu32(a, b), 32);
1234 __m512i a1X3X = _mm512_srli_epi64(a, 32);
1235 __m512i mask = _mm512_set_epi32(-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0);
1236 __m512i hi_product_Z1Z3 = _mm512_and_si512(_mm512_mul_epu32(a1X3X, b), mask);
1237 return _mm512_or_si512(hi_product_0Z2Z, hi_product_Z1Z3);
1238}
1239
1240// b is one 32-bit value repeated.
1241static inline __m512i libdivide_mullhi_s32_vector(__m512i a, __m512i b) {

Callers 3

libdivide_u32_do_vectorFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected