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

Reply via email to