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

Function npyv_loadn_s32

numpy/core/src/common/simd/sse/memory.h:79–94  ·  view source on GitHub ↗

* Non-contiguous Load ***************************/ / 32

Source from the content-addressed store, hash-verified

77 ***************************/
78//// 32
79NPY_FINLINE npyv_s32 npyv_loadn_s32(const npy_int32 *ptr, npy_intp stride)
80{
81 __m128i a = _mm_cvtsi32_si128(*ptr);
82#ifdef NPY_HAVE_SSE41
83 a = _mm_insert_epi32(a, ptr[stride], 1);
84 a = _mm_insert_epi32(a, ptr[stride*2], 2);
85 a = _mm_insert_epi32(a, ptr[stride*3], 3);
86#else
87 __m128i a1 = _mm_cvtsi32_si128(ptr[stride]);
88 __m128i a2 = _mm_cvtsi32_si128(ptr[stride*2]);
89 __m128i a3 = _mm_cvtsi32_si128(ptr[stride*3]);
90 a = _mm_unpacklo_epi32(a, a1);
91 a = _mm_unpacklo_epi64(a, _mm_unpacklo_epi32(a2, a3));
92#endif
93 return a;
94}
95NPY_FINLINE npyv_u32 npyv_loadn_u32(const npy_uint32 *ptr, npy_intp stride)
96{ return npyv_loadn_s32((const npy_int32*)ptr, stride); }
97NPY_FINLINE npyv_f32 npyv_loadn_f32(const float *ptr, npy_intp stride)

Callers 4

npyv_loadn_u32Function · 0.70
npyv_loadn_f32Function · 0.70
npyv_loadn_till_s32Function · 0.70
npyv_loadn_tillz_s32Function · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected