* Non-contiguous Store ***************************/ / 32
| 130 | ***************************/ |
| 131 | //// 32 |
| 132 | NPY_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 | } |
| 145 | NPY_FINLINE void npyv_storen_u32(npy_uint32 *ptr, npy_intp stride, npyv_u32 a) |
| 146 | { npyv_storen_s32((npy_int32*)ptr, stride, a); } |
| 147 | NPY_FINLINE void npyv_storen_f32(float *ptr, npy_intp stride, npyv_f32 a) |
no outgoing calls
no test coverage detected