Add X86 BZHI instruction as well as BMI2 feature detection.
[oota-llvm.git] / lib / Target / X86 / X86Subtarget.cpp
index 670073a07bbd44b491c7c5ee04478d788b66c9fd..c08dac9f999daa68ff460518f545084c3f8eb68a 100644 (file)
@@ -283,6 +283,10 @@ void X86Subtarget::AutoDetectSubtargetFeatures() {
       HasBMI = true;
       ToggleFeature(X86::FeatureBMI);
     }
+    if ((EBX >> 8) & 0x1) {
+      HasBMI2 = true;
+      ToggleFeature(X86::FeatureBMI2);
+    }
   }
 }
 
@@ -307,6 +311,7 @@ X86Subtarget::X86Subtarget(const std::string &TT, const std::string &CPU,
   , HasF16C(false)
   , HasLZCNT(false)
   , HasBMI(false)
+  , HasBMI2(false)
   , IsBTMemSlow(false)
   , IsUAMemFast(false)
   , HasVectorUAMem(false)