/ 64
| 85 | { return _mm256_castsi256_ps(npyv_loadn_u32((const npy_uint32*)ptr, stride)); } |
| 86 | //// 64 |
| 87 | NPY_FINLINE npyv_f64 npyv_loadn_f64(const double *ptr, npy_intp stride) |
| 88 | { |
| 89 | __m128d a0 = _mm_castsi128_pd(_mm_loadl_epi64((const __m128i*)ptr)); |
| 90 | __m128d a2 = _mm_castsi128_pd(_mm_loadl_epi64((const __m128i*)(ptr + stride*2))); |
| 91 | __m128d a01 = _mm_loadh_pd(a0, ptr + stride); |
| 92 | __m128d a23 = _mm_loadh_pd(a2, ptr + stride*3); |
| 93 | return _mm256_insertf128_pd(_mm256_castpd128_pd256(a01), a23, 1); |
| 94 | } |
| 95 | NPY_FINLINE npyv_u64 npyv_loadn_u64(const npy_uint64 *ptr, npy_intp stride) |
| 96 | { return _mm256_castpd_si256(npyv_loadn_f64((const double*)ptr, stride)); } |
| 97 | NPY_FINLINE npyv_s64 npyv_loadn_s64(const npy_int64 *ptr, npy_intp stride) |
no outgoing calls
no test coverage detected