RE: [PATCH] [X86]: Fix zen6 AVX512BMM cpuid check.

"Kumar, Venkataramanan" <[email protected]>
Newsgroups gmane.comp.gcc.patches
Message-ID <CYXPR12MB938738079CA23423279C25F28FA42@CYXPR12MB9387.namprd12.prod.outlook.com>
AMD General

Hi HJ,

> -----Original Message-----
> From: H.J. Lu <[email protected]>
> Sent: Friday, August 21, 2026 1:47 AM
> To: Sharma, Dipesh <[email protected]>
> Cc: [email protected]; [email protected]; [email protected];
> [email protected]; [email protected]; Kumar, Venkataramanan
> <[email protected]>
> Subject: Re: [PATCH] [X86]: Fix zen6 AVX512BMM cpuid check.
>
> Caution: This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
>
>
> On Fri, Aug 21, 2026 at 2:34 AM Dipesh Sharma <[email protected]>
> wrote:
> >
> > Hi,
> >
> > This patch fixes the AVX512BMM cpuid check for zen6. The AVX512BMM is
> > present in the extended features instead of the standard leaf.
>
> Where is AVX512BMM spec?  It should also be supported by glibc.

AMD64 Bit Matrix Multiply and Bit Reversal Instructions (PUB) (69192)
--snip--
CPUID Function 80000021_EAX[AVX512_BMM] (bit 23) = 1 indicates support for AMD Bit Matrix
Multiply and Bit Reversal instructions.
--snip--

You can find it here.
https://docs.amd.com/v/u/en-US/69192-PUB

regards,
Venkat.

>
> > bootstraped and regtested on x86_64-linux-gnu. Ok for trunk ?
> >
> > gcc/ChangeLog:
> >
> >         * common/config/i386/cpuinfo.h (get_available_features): Detect
> AVXBMM from extended features instead of standard leaf.
> > ---
> >  gcc/common/config/i386/cpuinfo.h | 12 ++----------
> >  1 file changed, 2 insertions(+), 10 deletions(-)
> >
> > diff --git a/gcc/common/config/i386/cpuinfo.h
> > b/gcc/common/config/i386/cpuinfo.h
> > index fef8f90f94c..153ab194864 100644
> > --- a/gcc/common/config/i386/cpuinfo.h
> > +++ b/gcc/common/config/i386/cpuinfo.h
> > @@ -1110,16 +1110,6 @@ get_available_features (struct
> __processor_model *cpu_model,
> >         }
> >      }
> >
> > -  /* Get Advanced Features at level 0x21 (eax = 0x21).  */
> > -  if (max_cpuid_level >= 0x21)
> > -    {
> > -      __cpuid (0x21, eax, ebx, ecx, edx);
> > -      if (eax & bit_AVX512BMM)
> > -       {
> > -         set_feature (FEATURE_AVX512BMM);
> > -       }
> > -    }
> > -
> >    /* Get Advanced Features at level 0x24 (eax = 0x24, ecx = 0).  */
> >    if (avx10_set && max_cpuid_level >= 0x24)
> >      {
> > @@ -1205,6 +1195,8 @@ get_available_features (struct
> __processor_model *cpu_model,
> >         {
> >           set_feature (FEATURE_PREFETCHI);
> >         }
> > +      if (eax & bit_AVX512BMM)
> > +       set_feature (FEATURE_AVX512BMM);
> >      }
> >
> >  #undef set_feature
> > --
> > 2.34.1
> >
>
>
> --
> H.J.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.