For AMD architectures with both fma3 and fma4 instructions' support, GCC generates fma4 by default. Instead, we like to generate fma3 instruction. Below patch enables the fma3 instruction generation for "-march=native".
Ok for trunk? Index: gcc/config/i386/driver-i386.c =================================================================== --- gcc/config/i386/driver-i386.c (revision 186897) +++ gcc/config/i386/driver-i386.c (working copy) @@ -472,6 +472,10 @@ has_abm = ecx & bit_ABM; has_lwp = ecx & bit_LWP; has_fma4 = ecx & bit_FMA4; + if (((vendor == SIG_AMD)) && (has_fma4) && (has_fma)) + { + has_fma4 = 0; + } has_xop = ecx & bit_XOP; has_tbm = ecx & bit_TBM; has_lzcnt = ecx & bit_LZCNT; Regards Ganesh