| 3349 | /************************************************************************/ |
| 3350 | |
| 3351 | static CPL_INLINE __m128 XMMLoad4Values(const GByte *ptr) |
| 3352 | { |
| 3353 | unsigned int i; |
| 3354 | memcpy(&i, ptr, 4); |
| 3355 | __m128i xmm_i = _mm_cvtsi32_si128(i); |
| 3356 | // Zero extend 4 packed unsigned 8-bit integers in a to packed |
| 3357 | // 32-bit integers. |
| 3358 | #if defined(__SSE4_1__) || defined(__AVX__) || defined(USE_NEON_OPTIMIZATIONS) |
| 3359 | xmm_i = _mm_cvtepu8_epi32(xmm_i); |
| 3360 | #else |
| 3361 | xmm_i = _mm_unpacklo_epi8(xmm_i, _mm_setzero_si128()); |
| 3362 | xmm_i = _mm_unpacklo_epi16(xmm_i, _mm_setzero_si128()); |
| 3363 | #endif |
| 3364 | return _mm_cvtepi32_ps(xmm_i); |
| 3365 | } |
| 3366 | |
| 3367 | static CPL_INLINE __m128 XMMLoad4Values(const GUInt16 *ptr) |
| 3368 | { |
no test coverage detected