[v1] x86: Add BMI1/BMI2 checks for ISA_V3 check

Message ID 20220616220259.1289277-1-goldstein.w.n@gmail.com
State Committed
Commit 8da9f346cb2051844348785b8a932ec44489e0b7
Headers
Series [v1] x86: Add BMI1/BMI2 checks for ISA_V3 check |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

Noah Goldstein June 16, 2022, 10:02 p.m. UTC
  BMI1/BMI2 are part of the ISA V3 requirements:
https://en.wikipedia.org/wiki/X86-64

And defined by GCC when building with `-march=x86-64-v3`
---
 sysdeps/x86/isa-level.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

H.J. Lu June 16, 2022, 10:39 p.m. UTC | #1
On Thu, Jun 16, 2022 at 3:03 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>
> BMI1/BMI2 are part of the ISA V3 requirements:
> https://en.wikipedia.org/wiki/X86-64
>
> And defined by GCC when building with `-march=x86-64-v3`
> ---
>  sysdeps/x86/isa-level.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/sysdeps/x86/isa-level.c b/sysdeps/x86/isa-level.c
> index a6cb32b1b1..09cd72ab20 100644
> --- a/sysdeps/x86/isa-level.c
> +++ b/sysdeps/x86/isa-level.c
> @@ -47,7 +47,8 @@
>  # endif
>
>  # if ISA_V2 && defined __AVX__ && defined __AVX2__ && defined __F16C__ \
> -     && defined __FMA__ && defined __LZCNT__ && defined HAVE_X86_MOVBE
> +     && defined __FMA__ && defined __LZCNT__ && defined HAVE_X86_MOVBE \
> +     && defined __BMI__ && defined __BMI2__
>  /* NB: ISAs in x86-64 ISA level v3 are used.  */
>  #  define ISA_V3       GNU_PROPERTY_X86_ISA_1_V3
>  # else
> --
> 2.34.1
>

LGTM.

Thanks.
  
Sunil Pandey July 14, 2022, 2:58 a.m. UTC | #2
On Thu, Jun 16, 2022 at 3:40 PM H.J. Lu via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>
> On Thu, Jun 16, 2022 at 3:03 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> >
> > BMI1/BMI2 are part of the ISA V3 requirements:
> > https://en.wikipedia.org/wiki/X86-64
> >
> > And defined by GCC when building with `-march=x86-64-v3`
> > ---
> >  sysdeps/x86/isa-level.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/sysdeps/x86/isa-level.c b/sysdeps/x86/isa-level.c
> > index a6cb32b1b1..09cd72ab20 100644
> > --- a/sysdeps/x86/isa-level.c
> > +++ b/sysdeps/x86/isa-level.c
> > @@ -47,7 +47,8 @@
> >  # endif
> >
> >  # if ISA_V2 && defined __AVX__ && defined __AVX2__ && defined __F16C__ \
> > -     && defined __FMA__ && defined __LZCNT__ && defined HAVE_X86_MOVBE
> > +     && defined __FMA__ && defined __LZCNT__ && defined HAVE_X86_MOVBE \
> > +     && defined __BMI__ && defined __BMI2__
> >  /* NB: ISAs in x86-64 ISA level v3 are used.  */
> >  #  define ISA_V3       GNU_PROPERTY_X86_ISA_1_V3
> >  # else
> > --
> > 2.34.1
> >
>
> LGTM.
>
> Thanks.
>
> --
> H.J.

I would like to backport this patch to release branches.
Any comments or objections?

--Sunil
  

Patch

diff --git a/sysdeps/x86/isa-level.c b/sysdeps/x86/isa-level.c
index a6cb32b1b1..09cd72ab20 100644
--- a/sysdeps/x86/isa-level.c
+++ b/sysdeps/x86/isa-level.c
@@ -47,7 +47,8 @@ 
 # endif
 
 # if ISA_V2 && defined __AVX__ && defined __AVX2__ && defined __F16C__ \
-     && defined __FMA__ && defined __LZCNT__ && defined HAVE_X86_MOVBE
+     && defined __FMA__ && defined __LZCNT__ && defined HAVE_X86_MOVBE \
+     && defined __BMI__ && defined __BMI2__
 /* NB: ISAs in x86-64 ISA level v3 are used.  */
 #  define ISA_V3	GNU_PROPERTY_X86_ISA_1_V3
 # else