https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77756

--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Yale Zhang from comment #2)

> But does level 13 really exist? I don't see any documentation for it.

Yes, apparently. It was added to driver-i386.c by Intel people, where:

  if (max_level >= 13)
    {
      __cpuid_count (13, 1, eax, ebx, ecx, edx);

      has_xsaveopt = eax & bit_XSAVEOPT;
      has_xsavec = eax & bit_XSAVEC;
      has_xsaves = eax & bit_XSAVES;
    }

> Also, any idea why the AVX2 auto detection used for function multiversioning
> was working earlier, which used __get_cpuid()? Was it just by chance?

This is handled via a different code path in libgcc/config/i386/cpunfo.c,
get_available_features, where __cpuid_count is used to get advanced features at
level 7.

Reply via email to