--- 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)) {