Adding const did not fix the problem, so I gave the 0xdd / 0x88 directly
as shuffle mask parameter in _mm256_shuffle_ps, then it compiles without
any problems (same fix for volk_32fc_deinterleave_imag_32f.h)

Thank you very much
Stefan

Am 23.10.2014 19:50, schrieb West, Nathan:
> On Thu, Oct 23, 2014 at 12:37 PM, Stefan Oltmanns
> <stefan-oltma...@gmx.net> wrote:
>> I just got the latest git version of gnuradio and tried to compile, but
>> I get compilation errors resulting from avxintrin.h:
>>
>> http://pastebin.com/uq4uGeNs
>>
>> These errors seems to be common and result from using non-standard
>> GCC-extensions that clang does not support.
>>
>> Any ideas?
> 
> This is a recently introduced bug; thanks for the report!
> 
> This is apparently because clang is stricter than gcc on constant
> arguments. The shuffle parameter is defined as an int rather than
> const int. The same instruction/function has been used for a long time
> without any problems, but in other cases we always give the literal
> value rather than a variable.
> 
> Since you're building from source I'll assume you might be able to try
> this patch out:
> 
> --- a/volk/kernels/volk/volk_32fc_deinterleave_32f_x2.h
> +++ b/volk/kernels/volk/volk_32fc_deinterleave_32f_x2.h
> @@ -42,8 +42,8 @@ static inline void
> volk_32fc_deinterleave_32f_x2_a_avx(float* iBuffer, float* qB
> 
>    unsigned int number = 0;
>    // Mask for real and imaginary parts
> -  int realMask = 0x88;
> -  int imagMask = 0xdd;
> +  const int realMask = 0x88;
> +  const int imagMask = 0xdd;
>    const unsigned int eighthPoints = num_points / 8;
>    __m256 cplxValue1, cplxValue2, complex1, complex2, iValue, qValue;
>    for(;number < eighthPoints; number++){
> 
> Otherwise, just roll back to a commit before we merged in the volk
> gsoc work (1-2 weeks, I think).
> 
> Nathan
> 


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to