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

Function npyv_storen_s32

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

* Non-contiguous Store ***************************/ / 32

Source from the content-addressed store, hash-verified

130 ***************************/
131//// 32
132NPY_FINLINE void npyv_storen_s32(npy_int32 *ptr, npy_intp stride, npyv_s32 a)
133{
134 ptr[stride * 0] = _mm_cvtsi128_si32(a);
135#ifdef NPY_HAVE_SSE41
136 ptr[stride * 1] = _mm_extract_epi32(a, 1);
137 ptr[stride * 2] = _mm_extract_epi32(a, 2);
138 ptr[stride * 3] = _mm_extract_epi32(a, 3);
139#else
140 ptr[stride * 1] = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, _MM_SHUFFLE(0, 0, 0, 1)));
141 ptr[stride * 2] = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, _MM_SHUFFLE(0, 0, 0, 2)));
142 ptr[stride * 3] = _mm_cvtsi128_si32(_mm_shuffle_epi32(a, _MM_SHUFFLE(0, 0, 0, 3)));
143#endif
144}
145NPY_FINLINE void npyv_storen_u32(npy_uint32 *ptr, npy_intp stride, npyv_u32 a)
146{ npyv_storen_s32((npy_int32*)ptr, stride, a); }
147NPY_FINLINE void npyv_storen_f32(float *ptr, npy_intp stride, npyv_f32 a)

Callers 2

npyv_storen_u32Function · 0.70
npyv_storen_f32Function · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected