Added FMA3 Intel instructions.
I disabled FMA3 autodetection, since the result may differ from expected for some benchmarks.
I added tests for GodeGen and intrinsics.
I did not change llvm.fma.f32/64 - it may be done later.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157737 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86Subtarget.cpp b/lib/Target/X86/X86Subtarget.cpp
index 7970268..3e00f50 100644
--- a/lib/Target/X86/X86Subtarget.cpp
+++ b/lib/Target/X86/X86Subtarget.cpp
@@ -205,10 +205,12 @@
     HasCLMUL = true;
     ToggleFeature(X86::FeatureCLMUL);
   }
-  if ((ECX >> 12) & 0x1) {
-    HasFMA3 = true;
-    ToggleFeature(X86::FeatureFMA3);
-  }
+  // FMA3 autodetection is switched off until we have a special flag
+  // in code generator
+  //if ((ECX >> 12) & 0x1) {
+  //  HasFMA3 = true;
+  //  ToggleFeature(X86::FeatureFMA3);
+  //}
   if (IsIntel && ((ECX >> 22) & 0x1)) {
     HasMOVBE = true;
     ToggleFeature(X86::FeatureMOVBE);