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

"H.J. Lu" <[email protected]>
Newsgroups gmane.comp.gcc.patches
Message-ID <CAMe9rOpG3DG7OEMAJ516SoLj2KJLpoMRzYbjm8ahjpyjFq6h0g@mail.gmail.com>
On Fri, Aug 21, 2026 at 5:05 AM Kumar, Venkataramanan
<[email protected]> wrote:
>
> 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

Please fix

/* Sub leaf (%eax == 0x21) */
#define bit_AVX512BMM   ( 1<<23 )

in cpuid.h.

-- 
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.