[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