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

Function npyv_storen2_u32

numpy/core/src/common/simd/avx2/memory.h:162–170  ·  view source on GitHub ↗

/ 64-bit store over 32-bit stride

Source from the content-addressed store, hash-verified

160
161//// 64-bit store over 32-bit stride
162NPY_FINLINE void npyv_storen2_u32(npy_uint32 *ptr, npy_intp stride, npyv_u32 a)
163{
164 __m128d a0 = _mm256_castpd256_pd128(_mm256_castsi256_pd(a));
165 __m128d a1 = _mm256_extractf128_pd(_mm256_castsi256_pd(a), 1);
166 _mm_storel_pd((double*)ptr, a0);
167 _mm_storeh_pd((double*)(ptr + stride), a0);
168 _mm_storel_pd((double*)(ptr + stride*2), a1);
169 _mm_storeh_pd((double*)(ptr + stride*3), a1);
170}
171NPY_FINLINE void npyv_storen2_s32(npy_int32 *ptr, npy_intp stride, npyv_s32 a)
172{ npyv_storen2_u32((npy_uint32*)ptr, stride, a); }
173NPY_FINLINE void npyv_storen2_f32(float *ptr, npy_intp stride, npyv_f32 a)

Callers 2

npyv_storen2_s32Function · 0.70
npyv_storen2_f32Function · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected