22#include <winpr/cast.h> 
   24#include "../../core/simd.h" 
   26#if defined(SSE_AVX_INTRINSICS_ENABLED) 
   30static inline __m128i mm_set_epu32(uint32_t val1, uint32_t val2, uint32_t val3, uint32_t val4)
 
   32  return _mm_set_epi32(WINPR_CXX_COMPAT_CAST(int32_t, val1), WINPR_CXX_COMPAT_CAST(int32_t, val2),
 
   33                       WINPR_CXX_COMPAT_CAST(int32_t, val3),
 
   34                       WINPR_CXX_COMPAT_CAST(int32_t, val4));
 
   37static inline __m128i mm_set_epu8(uint8_t val1, uint8_t val2, uint8_t val3, uint8_t val4,
 
   38                                  uint8_t val5, uint8_t val6, uint8_t val7, uint8_t val8,
 
   39                                  uint8_t val9, uint8_t val10, uint8_t val11, uint8_t val12,
 
   40                                  uint8_t val13, uint8_t val14, uint8_t val15, uint8_t val16)
 
   42  return _mm_set_epi8(WINPR_CXX_COMPAT_CAST(int8_t, val1), WINPR_CXX_COMPAT_CAST(int8_t, val2),
 
   43                      WINPR_CXX_COMPAT_CAST(int8_t, val3), WINPR_CXX_COMPAT_CAST(int8_t, val4),
 
   44                      WINPR_CXX_COMPAT_CAST(int8_t, val5), WINPR_CXX_COMPAT_CAST(int8_t, val6),
 
   45                      WINPR_CXX_COMPAT_CAST(int8_t, val7), WINPR_CXX_COMPAT_CAST(int8_t, val8),
 
   46                      WINPR_CXX_COMPAT_CAST(int8_t, val9), WINPR_CXX_COMPAT_CAST(int8_t, val10),
 
   47                      WINPR_CXX_COMPAT_CAST(int8_t, val11), WINPR_CXX_COMPAT_CAST(int8_t, val12),
 
   48                      WINPR_CXX_COMPAT_CAST(int8_t, val13), WINPR_CXX_COMPAT_CAST(int8_t, val14),
 
   49                      WINPR_CXX_COMPAT_CAST(int8_t, val15), WINPR_CXX_COMPAT_CAST(int8_t, val16));
 
   52static inline __m128i mm_set1_epu32(uint32_t val)
 
   54  return _mm_set1_epi32(WINPR_CXX_COMPAT_CAST(int32_t, val));
 
   57static inline __m128i mm_set1_epu8(uint8_t val)
 
   59  return _mm_set1_epi8(WINPR_CXX_COMPAT_CAST(int8_t, val));
 
   62static inline __m128i LOAD_SI128(
const void* ptr)
 
   64  const __m128i* mptr = WINPR_CXX_COMPAT_CAST(
const __m128i*, ptr);
 
   65  return _mm_lddqu_si128(mptr);
 
   68static inline void STORE_SI128(
void* ptr, __m128i val)
 
   70  __m128i* mptr = WINPR_CXX_COMPAT_CAST(__m128i*, ptr);
 
   71  _mm_storeu_si128(mptr, val);