[127653] trunk/dports/science/gnuradio

michaelld at macports.org michaelld at macports.org
Fri Oct 31 08:52:22 PDT 2014


Revision: 127653
          https://trac.macports.org/changeset/127653
Author:   michaelld at macports.org
Date:     2014-10-31 08:52:22 -0700 (Fri, 31 Oct 2014)
Log Message:
-----------
gnuradio: add temporary patch to fix use of constants for shuffle in volk; addresses ticket #45540.

Modified Paths:
--------------
    trunk/dports/science/gnuradio/Portfile

Added Paths:
-----------
    trunk/dports/science/gnuradio/files/patch-volk-shuffle.diff

Modified: trunk/dports/science/gnuradio/Portfile
===================================================================
--- trunk/dports/science/gnuradio/Portfile	2014-10-31 14:57:55 UTC (rev 127652)
+++ trunk/dports/science/gnuradio/Portfile	2014-10-31 15:52:22 UTC (rev 127653)
@@ -165,6 +165,10 @@
         patchfiles-append \
             patch-cmake-expand.devel.diff
 
+        # temporary patch to fix shuffle constants in volk
+        patchfiles-append \
+            patch-volk-shuffle.diff
+
     }
 
     # 3.7 API variants

Added: trunk/dports/science/gnuradio/files/patch-volk-shuffle.diff
===================================================================
--- trunk/dports/science/gnuradio/files/patch-volk-shuffle.diff	                        (rev 0)
+++ trunk/dports/science/gnuradio/files/patch-volk-shuffle.diff	2014-10-31 15:52:22 UTC (rev 127653)
@@ -0,0 +1,43 @@
+--- volk/kernels/volk/volk_32fc_deinterleave_32f_x2.h.orig
++++ volk/kernels/volk/volk_32fc_deinterleave_32f_x2.h
+@@ -41,9 +41,6 @@ static inline void volk_32fc_deinterleave_32f_x2_a_avx(float* iBuffer, float* qB
+   float* qBufferPtr = qBuffer;
+ 
+   unsigned int number = 0;
+-  // Mask for real and imaginary parts
+-  int realMask = 0x88;
+-  int imagMask = 0xdd;
+   const unsigned int eighthPoints = num_points / 8;
+   __m256 cplxValue1, cplxValue2, complex1, complex2, iValue, qValue;
+   for(;number < eighthPoints; number++){
+@@ -58,9 +55,9 @@ static inline void volk_32fc_deinterleave_32f_x2_a_avx(float* iBuffer, float* qB
+     complex2 = _mm256_permute2f128_ps(cplxValue1, cplxValue2, 0x31);
+ 
+     // Arrange in i1i2i3i4 format
+-    iValue = _mm256_shuffle_ps(complex1, complex2, realMask);
++    iValue = _mm256_shuffle_ps(complex1, complex2, 0x88);
+     // Arrange in q1q2q3q4 format
+-    qValue = _mm256_shuffle_ps(complex1, complex2, imagMask);
++    qValue = _mm256_shuffle_ps(complex1, complex2, 0xdd);
+ 
+     _mm256_store_ps(iBufferPtr, iValue);
+     _mm256_store_ps(qBufferPtr, qValue);
+--- volk/kernels/volk/volk_32fc_deinterleave_imag_32f.h.orig
++++ volk/kernels/volk/volk_32fc_deinterleave_imag_32f.h
+@@ -37,7 +37,6 @@
+ static inline void volk_32fc_deinterleave_imag_32f_a_avx(float* qBuffer, const lv_32fc_t* complexVector, unsigned int num_points){
+   unsigned int number = 0;
+   const unsigned int eighthPoints = num_points / 8;
+-  int imagMask = 0xdd;
+   const float* complexVectorPtr = (const float*)complexVector;
+   float* qBufferPtr = qBuffer;
+ 
+@@ -54,7 +53,7 @@ static inline void volk_32fc_deinterleave_imag_32f_a_avx(float* qBuffer, const l
+     complex2 = _mm256_permute2f128_ps(cplxValue1, cplxValue2, 0x31);
+ 
+     // Arrange in q1q2q3q4 format
+-    qValue = _mm256_shuffle_ps(complex1, complex2, imagMask);
++    qValue = _mm256_shuffle_ps(complex1, complex2, 0xdd);
+     //iValue = _mm_shuffle_ps(cplxValue1, cplxValue2, _MM_SHUFFLE(3,1,3,1));
+ 
+     _mm256_store_ps(qBufferPtr, qValue);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20141031/6fb93df6/attachment.html>


More information about the macports-changes mailing list