/ 64-bit store over 32-bit stride
| 160 | |
| 161 | //// 64-bit store over 32-bit stride |
| 162 | NPY_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 | } |
| 171 | NPY_FINLINE void npyv_storen2_s32(npy_int32 *ptr, npy_intp stride, npyv_s32 a) |
| 172 | { npyv_storen2_u32((npy_uint32*)ptr, stride, a); } |
| 173 | NPY_FINLINE void npyv_storen2_f32(float *ptr, npy_intp stride, npyv_f32 a) |
no outgoing calls
no test coverage detected