--- old/src/hotspot/cpu/x86/vm_version_x86.cpp	2019-12-10 17:10:26.265015381 -0800
+++ new/src/hotspot/cpu/x86/vm_version_x86.cpp	2019-12-10 17:10:26.113015381 -0800
@@ -748,7 +748,10 @@
                (supports_adx() ? ", adx" : ""),
                (supports_evex() ? ", evex" : ""),
                (supports_sha() ? ", sha" : ""),
-               (supports_fma() ? ", fma" : ""));
+               (supports_fma() ? ", fma" : ""),
+               (supports_vbmi2() ? ", vbmi2" : ""),
+               (supports_vaes() ? ", vaes" : ""),
+               (supports_vnni() ? ", vnni" : ""));
   _features_string = os::strdup(buf);
 
   // UseSSE is set to the smaller of what hardware supports and what
@@ -1429,6 +1432,16 @@
     FLAG_SET_DEFAULT(UseBMI2Instructions, false);
   }
 
+  // To enable VBMI2 we require that processor supports it and also that EVEX encoding is supported and enabled.
+  if (supports_vbmi2() && UseAVX > 2) {
+    if (FLAG_IS_DEFAULT(UseVBMI2)) {
+      UseVBMI2 = true;
+    }
+  } else if (UseVBMI2) {
+    warning("VBMI2 instructions are not available on this CPU");
+    FLAG_SET_DEFAULT(UseVBMI2, false);
+  }
+
   // Use population count instruction if available.
   if (supports_popcnt()) {
     if (FLAG_IS_DEFAULT(UsePopCountInstruction)) {