- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I compile this inline asm line with Intel compiler:
_asm { vpxor ymm0, ymm0, ymm0 }
compiles ok, but is an AVX2 instruction, that will not run on my older i5 CPU and give an illegal instruction exception.
How can I tell the compiler to disable specific SIMD instructions? E.g. like this: /disable:AVX2 ?
- Tags:
- Intel® Advanced Vector Extensions (Intel® AVX)
- Intel® Streaming SIMD Extensions
- Parallel Computing
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You might consider the processor dispatching feature, or avx compatible intrinsic which might be promoted according to /arch:
Or guarding with #if __AVX2__
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The Intel compiler has a number of options to control the instruction sets to target and possibly generate multiple auto-dispatch code paths for different different processors, but that only applies to compiling C/C++ code:
https://software.intel.com/en-us/node/522821
When you compile inline assembly you are specifying the exact instructions to use in the object files. I'm not aware of any Intel tools to translate instructions at the assembly level. You'll likely have to modify the code in one of the ways Tim suggested above in order to avoid the AVX instructions.

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