1 #ifndef INCLUDED_volk_16u_byteswap_u_H
2 #define INCLUDED_volk_16u_byteswap_u_H
15 static inline void volk_16u_byteswap_u_sse2(
uint16_t* intsToSwap,
unsigned int num_points){
16 unsigned int number = 0;
18 __m128i input, left, right, output;
20 const unsigned int eighthPoints = num_points / 8;
21 for(;number < eighthPoints; number++){
23 input = _mm_loadu_si128((__m128i*)inputPtr);
25 left = _mm_slli_epi16(input, 8);
26 right = _mm_srli_epi16(input, 8);
28 output = _mm_or_si128(left, right);
30 _mm_storeu_si128((__m128i*)inputPtr, output);
35 number = eighthPoints*8;
36 for(; number < num_points; number++){
38 outputVal = (((outputVal >> 8) & 0xff) | ((outputVal << 8) & 0xff00));
39 *inputPtr = outputVal;
45 #ifdef LV_HAVE_GENERIC
51 static inline void volk_16u_byteswap_u_generic(
uint16_t* intsToSwap,
unsigned int num_points){
54 for(point = 0; point < num_points; point++){
56 output = (((output >> 8) & 0xff) | ((output << 8) & 0xff00));