- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello ,
I am using in my code intrinsics.
If I compile like:
icc -std=c99 -g -openmp -qopt-report=2 -o mycode mycode.c
I am receiving : Illegal instruction in line:
__m512 D = _mm512_set1_ps( FLT_MAX );
If I compile :
icc -std=c99 -g -mavx -openmp -qopt-report=2 -o mycode mycode.c
I am receiving: Illegal instruction in line:
__m512i tempy = _mm512_set1_epi32( y );
which is after "D" and after 'tempx , xIdx" . ( x and y are integers )
__m512i tempx = _mm512_set1_epi32( x ); __m512 xIdx = _mm512_castsi512_ps( tempx ); __m512i tempy = _mm512_set1_epi32( y ); __m512 yIdx = _mm512_castsi512_ps( tempy );
Any ideas?
Thanks!
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Since this is the MIC forum, I assume you are trying to target a MIC processor, not AVX512, but whichever of those it is, you need to tell the compiler that that is what you are trying to do, since 512 bit operations are not valid on most machines.
So, add "-mmic" to your compiler flags to target the MIC, or consult the compiler manual to find the right flags for AVX512.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok, thanks , I misunderstood.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page