< prev index next >

src/hotspot/cpu/x86/vm_version_x86.hpp

Print this page
@@ -359,11 +359,13 @@
      decl(CLWB,              "clwb",              43) /* clwb instruction */ \
                                                       \
      decl(AVX512_VBMI2,      "avx512_vbmi2",      44) /* VBMI2 shift left double instructions */ \
      decl(AVX512_VBMI,       "avx512_vbmi",       45) /* Vector BMI instructions */ \
      decl(HV,                "hv",                46) /* Hypervisor instructions */ \
-     decl(SERIALIZE,         "serialize",         47) /* CPU SERIALIZE */
+     decl(SERIALIZE,         "serialize",         47) /* CPU SERIALIZE */ \
+     decl(GFNI,              "gfni",              48) /* Vector GFNI instructions */ \
+     decl(AVX512_BITALG,     "avx512_bitalg",     49) /* Vector sub-word popcount and bit gather instructions */
  
  #define DECLARE_CPU_FEATURE_FLAG(id, name, bit) CPU_##id = (1ULL << bit),
      CPU_FEATURE_FLAGS(DECLARE_CPU_FEATURE_FLAG)
  #undef DECLARE_CPU_FEATURE_FLAG
    };

@@ -589,12 +591,16 @@
            result |= CPU_AVX512_VPOPCNTDQ;
          if (_cpuid_info.sef_cpuid7_ecx.bits.avx512_vpclmulqdq != 0)
            result |= CPU_AVX512_VPCLMULQDQ;
          if (_cpuid_info.sef_cpuid7_ecx.bits.vaes != 0)
            result |= CPU_AVX512_VAES;
+         if (_cpuid_info.sef_cpuid7_ecx.bits.gfni != 0)
+           result |= CPU_GFNI;
          if (_cpuid_info.sef_cpuid7_ecx.bits.avx512_vnni != 0)
            result |= CPU_AVX512_VNNI;
+         if (_cpuid_info.sef_cpuid7_ecx.bits.avx512_bitalg != 0)
+           result |= CPU_AVX512_BITALG;
          if (_cpuid_info.sef_cpuid7_ecx.bits.avx512_vbmi != 0)
            result |= CPU_AVX512_VBMI;
          if (_cpuid_info.sef_cpuid7_ecx.bits.avx512_vbmi2 != 0)
            result |= CPU_AVX512_VBMI2;
        }

@@ -895,11 +901,13 @@
    static bool supports_fma()          { return (_features & CPU_FMA) != 0 && supports_avx(); }
    static bool supports_vzeroupper()   { return (_features & CPU_VZEROUPPER) != 0; }
    static bool supports_avx512_vpopcntdq()  { return (_features & CPU_AVX512_VPOPCNTDQ) != 0; }
    static bool supports_avx512_vpclmulqdq() { return (_features & CPU_AVX512_VPCLMULQDQ) != 0; }
    static bool supports_avx512_vaes()  { return (_features & CPU_AVX512_VAES) != 0; }
+   static bool supports_gfni()         { return (_features & CPU_GFNI) != 0; }
    static bool supports_avx512_vnni()  { return (_features & CPU_AVX512_VNNI) != 0; }
+   static bool supports_avx512_bitalg()  { return (_features & CPU_AVX512_BITALG) != 0; }
    static bool supports_avx512_vbmi()  { return (_features & CPU_AVX512_VBMI) != 0; }
    static bool supports_avx512_vbmi2() { return (_features & CPU_AVX512_VBMI2) != 0; }
    static bool supports_hv()           { return (_features & CPU_HV) != 0; }
    static bool supports_serialize()    { return (_features & CPU_SERIALIZE) != 0; }
  
< prev index next >