What are the differences and tradeoffs between -march=haswell, -march=core-avx2, and -mavx2 for compiling avx2 intrinsics? I know that -mavx2 is a flag and -march=haswell/core-avx2 are architectures which just translate to a bunch of flags. So -mavx2 is a subset of the other two. But beyond that, how do I choose the right one for my application?
How does -march=native choose which instruction sets to enable and which to disable? I have the following conjecture: -march=native will be using CPUID instructions to calculate supported instruction sets etc in order to detect the processor variant -march=foobar will use a hardcoded list of instruction sets which processor foobar supports.
Using -march will also allow you more possibilities to use 3rd party closed source as well. You should be able to link -mcpu=cortex-r5 with -march=armv7-r code; well it is fine in one directions, so the tools may complain.
-march: generate instructions for a specific machine type. Defaults to x86-64-v3 on AMD64 and armv8-a on AArch64. Use -march=compatibility for best compatibility, or -march=native for best performance if a native executable is deployed on the same machine or on a machine with the same CPU features. To list all available machine types, use ...
For work I have to use an Excel version in German. Excel handles the month of March (März) in a strange/wrong way. The standard German abbreviation in the month's list is MRZ (if I fill a series of
date - Problems with Excel handling of the month of March in German ...
Is there a way to get gcc to output the available -march=arch options? I'm getting build errors (tried -march=x86_64) and I don't know what my options are. The compiler I'm using is a proprietary