| 238 | typedef typename BitDepthInfo<BD>::Type Type; |
| 239 | |
| 240 | static inline void Load(const Type *in, __m128& r, __m128& g, __m128& b, __m128& a) |
| 241 | { |
| 242 | const __m128i zero = _mm_setzero_si128(); |
| 243 | __m128i rgba_00_01 = _mm_loadu_si128((const __m128i*)(in + 0)); |
| 244 | __m128i rgba_02_03 = _mm_loadu_si128((const __m128i*)(in + 8)); |
| 245 | |
| 246 | __m128 rgba0 = _mm_cvtepi32_ps(_mm_unpacklo_epi16(rgba_00_01, zero)); |
| 247 | __m128 rgba1 = _mm_cvtepi32_ps(_mm_unpackhi_epi16(rgba_00_01, zero)); |
| 248 | |
| 249 | __m128 rgba2 = _mm_cvtepi32_ps(_mm_unpacklo_epi16(rgba_02_03, zero)); |
| 250 | __m128 rgba3 = _mm_cvtepi32_ps(_mm_unpackhi_epi16(rgba_02_03, zero)); |
| 251 | |
| 252 | sse2RGBATranspose_4x4(rgba0, rgba1, rgba2, rgba3, r, g, b, a); |
| 253 | } |
| 254 | |
| 255 | static inline void Store(Type *out, __m128 r, __m128 g, __m128 b, __m128 a) |
| 256 | { |
nothing calls this directly
no test coverage detected