Need help running XOP C intrinsics code on AMD Zambezi/Bulldozer?

gcc_user_666 verthex2099@yahoo.com
Fri Jul 12 19:16:00 GMT 2013


Hello,

I'm getting a seg-fault running this code.

#include <emmintrin.h>
#include <x86intrin.h>
#include <stdio.h>
#include <stdint.h>

void print_2_64_bit_ints(const char * label, __m128i m64_r)
{
    int *val = (int *) &m64_r;
    printf("%s: %d %d\n", label, val[0], val[1]);
}
int main()
{
    __m128i HADDQinput = _mm_set_epi8(4, 3, 2, 1, 8, 7, 5, 3, 7, 6, 5, 4, 9,
0, 3, 3);
    //__m128i RESULT = _mm_haddq_epi8(HADDQinput);
    //_mm_empty();

    //print_2_64_bit_ints("Result ", RESULT);

    return 0;
}

The GCC compiler flags used are -msse3 -msse4 -mxop -mavx and I'm compiling
this with GCC-TDM 4.7.1-2.

If I run the code through GDB it gets up to this line

__m128i HADDQinput = _mm_set_epi8(4, 3, 2, 1, 8, 7, 5, 3, 7, 6, 5, 4, 9, 0,
3, 3);

and it crashes on line 603 in emmintrin.h. I also noticed that this only
occurs if the header x86intrin.h is included otherwise the program exits
fine. I'm using an AMD-8150 FX (Bulldozer) processor with these instructions
available according to CPU-Z (CPUID)

MMX(+), SSE(1,2,3,3S,4.1,4.2,4A), x86-64, AMD-V, AES,AVX,XOP

<http://gcc.1065356.n5.nabble.com/file/n952620/bulldozer_8150_FX_cpu_z.png> 


Someone told me that the fault occurs due to an Intel instruction 'vmovd
xmm0..' using WinDbg.

thanks,

Andrew 



--
View this message in context: http://gcc.1065356.n5.nabble.com/Need-help-running-XOP-C-intrinsics-code-on-AMD-Zambezi-Bulldozer-tp952620.html
Sent from the gcc - Help mailing list archive at Nabble.com.



More information about the Gcc-help mailing list