source:
trunk/dports/science/gnuradio/files/patch-volk-shuffle.diff
@
127653
| Last change on this file since 127653 was 127653, checked in by michaelld@…, 9 years ago | |
|---|---|
| File size: 2.0 KB | |
-
volk/kernels/volk/volk_32fc_deinterleave_32f_x2.h
old new static inline void volk_32fc_deinterleave_32f_x2_a_avx(float* iBuffer, float* qB 41 41 float* qBufferPtr = qBuffer; 42 42 43 43 unsigned int number = 0; 44 // Mask for real and imaginary parts45 int realMask = 0x88;46 int imagMask = 0xdd;47 44 const unsigned int eighthPoints = num_points / 8; 48 45 __m256 cplxValue1, cplxValue2, complex1, complex2, iValue, qValue; 49 46 for(;number < eighthPoints; number++){ … … static inline void volk_32fc_deinterleave_32f_x2_a_avx(float* iBuffer, float* qB 58 55 complex2 = _mm256_permute2f128_ps(cplxValue1, cplxValue2, 0x31); 59 56 60 57 // Arrange in i1i2i3i4 format 61 iValue = _mm256_shuffle_ps(complex1, complex2, realMask);58 iValue = _mm256_shuffle_ps(complex1, complex2, 0x88); 62 59 // Arrange in q1q2q3q4 format 63 qValue = _mm256_shuffle_ps(complex1, complex2, imagMask);60 qValue = _mm256_shuffle_ps(complex1, complex2, 0xdd); 64 61 65 62 _mm256_store_ps(iBufferPtr, iValue); 66 63 _mm256_store_ps(qBufferPtr, qValue); -
volk/kernels/volk/volk_32fc_deinterleave_imag_32f.h
old new 37 37 static inline void volk_32fc_deinterleave_imag_32f_a_avx(float* qBuffer, const lv_32fc_t* complexVector, unsigned int num_points){ 38 38 unsigned int number = 0; 39 39 const unsigned int eighthPoints = num_points / 8; 40 int imagMask = 0xdd;41 40 const float* complexVectorPtr = (const float*)complexVector; 42 41 float* qBufferPtr = qBuffer; 43 42 … … static inline void volk_32fc_deinterleave_imag_32f_a_avx(float* qBuffer, const l 54 53 complex2 = _mm256_permute2f128_ps(cplxValue1, cplxValue2, 0x31); 55 54 56 55 // Arrange in q1q2q3q4 format 57 qValue = _mm256_shuffle_ps(complex1, complex2, imagMask);56 qValue = _mm256_shuffle_ps(complex1, complex2, 0xdd); 58 57 //iValue = _mm_shuffle_ps(cplxValue1, cplxValue2, _MM_SHUFFLE(3,1,3,1)); 59 58 60 59 _mm256_store_ps(qBufferPtr, qValue);
Note: See TracBrowser
for help on using the repository browser.
