--- old/src/hotspot/cpu/x86/vm_version_x86.hpp 2018-09-06 16:45:13.558726900 -0700 +++ new/src/hotspot/cpu/x86/vm_version_x86.hpp 2018-09-06 16:45:13.033767700 -0700 @@ -336,6 +336,7 @@ #define CPU_AVX512_VPOPCNTDQ ((uint64_t)UCONST64(0x2000000000)) // Vector popcount #define CPU_VPCLMULQDQ ((uint64_t)UCONST64(0x4000000000)) //Vector carryless multiplication #define CPU_VAES ((uint64_t)UCONST64(0x8000000000)) // Vector AES instructions +#define CPU_AVX512VBMI ((uint64_t)UCONST64(0x10000000000)) // Vector BMI instructions enum Extended_Family { // AMD @@ -548,6 +549,8 @@ result |= CPU_VPCLMULQDQ; if (_cpuid_info.sef_cpuid7_ecx.bits.vaes != 0) result |= CPU_VAES; + if (_cpuid_info.sef_cpuid7_ecx.bits.avx512_vbmi != 0) + result |= CPU_AVX512VBMI; } } if(_cpuid_info.sef_cpuid7_ebx.bits.bmi1 != 0) @@ -816,6 +819,7 @@ static bool supports_avx512cd() { return (_features & CPU_AVX512CD) != 0; } static bool supports_avx512bw() { return (_features & CPU_AVX512BW) != 0; } static bool supports_avx512vl() { return (_features & CPU_AVX512VL) != 0; } + static bool supports_avx512vbmi() { return (_features & CPU_AVX512VBMI) != 0; } static bool supports_avx512vlbw() { return (supports_avx512bw() && supports_avx512vl()); } static bool supports_avx512novl() { return (supports_evex() && !supports_avx512vl()); } static bool supports_avx512nobw() { return (supports_evex() && !supports_avx512bw()); }