The current development docs say: >x86-64-v2 >x86-64-v3 >x86-64-v4 > > These choices for cpu-type select the corresponding > micro-architecture level from the x86-64 psABI. They are only available > when compiling for an x86-64 target that uses the System V psABI. > > Since these cpu-type values do not have a corresponding -mtune > setting, using -march with these values enables generic tuning. Specific > tuning can be enabled using the -mtune=other-cpu-type option with an > appropriate other-cpu-type value.
Why are those options valid only for the SysV psABI targets? Despite the fact that SysV psABI specification is the document where those levels are defined, I don't think there's anything ABI-specific about them. It seems arbitrary to prevent the other targets (most notably Windows) from using them.