libgcc has this enum encoding defined for a while, but their
detection code is missing. I've raised a bug with them so that
should get fixed soon.
// Skylake Xeon:
case 0x55:
*Type = INTEL_COREI7;
- if (testFeature(FEATURE_AVX512VNNI))
+ if (testFeature(FEATURE_AVX512BF16))
+ *Subtype = INTEL_COREI7_COOPERLAKE; // "cooperlake"
+ else if (testFeature(FEATURE_AVX512VNNI))
*Subtype = INTEL_COREI7_CASCADELAKE; // "cascadelake"
else
*Subtype = INTEL_COREI7_SKYLAKE_AVX512; // "skylake-avx512"