From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by sourceware.org (Postfix) with ESMTPS id 1BE8E38A816D for ; Wed, 5 Apr 2023 21:05:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1BE8E38A816D Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-x530.google.com with SMTP id w9so144389012edc.3 for ; Wed, 05 Apr 2023 14:05:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680728739; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=JQDRGAJsOaq+SVmwSk7sY3Xyv9Vn8YASTIk8tlJZW5w=; b=VFAWGkDa0Z+0f1I0TLKfcS/9cVBuTTD0gZoSb9CA/S9eI/73wEWbYB0DedWt3SuSrH 44hHQJm4IvujgLTRLWm1kf8pp+U1lYfVcC1tdFqvm8Xm/rpbCHEBKkHBA1OKsRLCkzMV B+1fnECaRQaDe2Y3+Hv23pUz2+ICNozdRTDDpczNzgzOAvu9+P7Yi0tn8fODlXRxr2Q8 ax6Lcm43mRcW7pNqW8x42Belj8gbfG5ZrRUJlBXP07MCRvCpJzE4L0rfAVAKQcDAX109 IHDqoqRS4K1f8tyIp0Rk/BHQkxxpscwFvhqBRZ7iiYoLhnNYYeUSmP7YXGCtp2ax7Ijh e9/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680728739; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JQDRGAJsOaq+SVmwSk7sY3Xyv9Vn8YASTIk8tlJZW5w=; b=4tqrwkobJBG47ca/NvCQgkzp16qSpRrxxNxk7Mg4srh75oC/ZhvK2eJgRLNzouYhv2 InsNo/EhrDko/1PqS6OL01xVeOpowA7VPC2xQql5zmzo4HrMvOoPCrvJJXPvjLtt9qSw NWiZlqGCmUTJoJH2D8ABePc5XFE7dfHA9OIrRl7Dtrl2VmS1hIgo0PZB+D03NriHPMgu BEqjoaVZi7qfAELV4XGJ93BWTiMlYr4WuRhOt+nYR3Az7qUmK6fushAOsJekFyXx2vi9 J53crTWyCyqX/TFd3j+Dq2LI5iPDCv8q50gT9cjoCdVvevvtHxptIf1AIWfr69Xc3pnT Avvg== X-Gm-Message-State: AAQBX9f0kZNiPCgBJdVyVPe421pF5M2yblBYal1ODpq+JqSNcW99nQP2 PnDs3ijm11S1HfjzN1QMI9O1Sd8+mqZnfHwwiBc= X-Google-Smtp-Source: AKy350ZQxvulxF6zR1ACKcbyCOwCOnZy5sAg/OXxNfoFJn+loxjKj+YT5vWLZziJ1UuaogtRRI6AQAgDf5EHG5Ukb+o= X-Received: by 2002:a17:907:8b15:b0:8b8:aef3:f2a9 with SMTP id sz21-20020a1709078b1500b008b8aef3f2a9mr2349449ejc.0.1680728738836; Wed, 05 Apr 2023 14:05:38 -0700 (PDT) MIME-Version: 1.0 References: <20230405162144.984598-1-hjl.tools@gmail.com> <20230405162144.984598-17-hjl.tools@gmail.com> In-Reply-To: <20230405162144.984598-17-hjl.tools@gmail.com> From: Noah Goldstein Date: Wed, 5 Apr 2023 16:05:27 -0500 Message-ID: Subject: Re: [PATCH 16/19] : Add AVX-VNNI-INT8 support To: "H.J. Lu" Cc: libc-alpha@sourceware.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-9.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Wed, Apr 5, 2023 at 11:28=E2=80=AFAM H.J. Lu via Libc-alpha wrote: > > Add AVX-VNNI-INT8 support to . > --- > manual/platform.texi | 3 +++ > sysdeps/x86/bits/platform/x86.h | 6 ++++++ > sysdeps/x86/cpu-features.c | 2 ++ > sysdeps/x86/include/cpu-features.h | 7 +++++++ > sysdeps/x86/tst-get-cpu-features.c | 2 ++ > 5 files changed, 20 insertions(+) > > diff --git a/manual/platform.texi b/manual/platform.texi > index bfccd024a5..873ea0a84a 100644 > --- a/manual/platform.texi > +++ b/manual/platform.texi > @@ -225,6 +225,9 @@ Leaf (EAX =3D 23H). > @item > @code{AVX_VNNI} -- The AVX-VNNI instruction extensions. > > +@item > +@code{AVX_VNNI_INT8} -- The AVX-VNNI-INT8 instruction extensions. > + > @item > @code{AVX512_4FMAPS} -- The AVX512_4FMAPS instruction extensions. > > diff --git a/sysdeps/x86/bits/platform/x86.h b/sysdeps/x86/bits/platform/= x86.h > index 57973e9a6c..7b239ef188 100644 > --- a/sysdeps/x86/bits/platform/x86.h > +++ b/sysdeps/x86/bits/platform/x86.h > @@ -304,6 +304,12 @@ enum > x86_cpu_LAM =3D x86_cpu_index_7_ecx_1_eax + 26, > x86_cpu_MSRLIST =3D x86_cpu_index_7_ecx_1_eax + 27, > > + x86_cpu_index_7_ecx_1_edx > + =3D (CPUID_INDEX_7_ECX_1 * 8 * 4 * sizeof (unsigned int) > + + cpuid_register_index_edx * 8 * sizeof (unsigned int)), > + > + x86_cpu_AVX_VNNI_INT8 =3D x86_cpu_index_7_ecx_1_edx + 4= , > + > x86_cpu_index_19_ebx > =3D (CPUID_INDEX_19 * 8 * 4 * sizeof (unsigned int) > + cpuid_register_index_ebx * 8 * sizeof (unsigned int)), > diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c > index 06fae443a8..f34f4884eb 100644 > --- a/sysdeps/x86/cpu-features.c > +++ b/sysdeps/x86/cpu-features.c > @@ -143,6 +143,8 @@ update_active (struct cpu_features *cpu_features) > CPU_FEATURE_SET_ACTIVE (cpu_features, AVX_IFMA); > /* Determine if AVX-VNNI is usable. */ > CPU_FEATURE_SET_ACTIVE (cpu_features, AVX_VNNI); > + /* Determine if AVX-VNNI-INT8 is usable. */ > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX_VNNI_INT8); > /* Determine if FMA is usable. */ > CPU_FEATURE_SET_ACTIVE (cpu_features, FMA); > /* Determine if VAES is usable. */ > diff --git a/sysdeps/x86/include/cpu-features.h b/sysdeps/x86/include/cpu= -features.h > index 1f4b6831f9..5e09c58d9c 100644 > --- a/sysdeps/x86/include/cpu-features.h > +++ b/sysdeps/x86/include/cpu-features.h > @@ -314,6 +314,9 @@ enum > #define bit_cpu_AVX_IFMA (1u << 23) > #define bit_cpu_LAM (1u << 26) > > +/* EDX. */ > +#define bit_cpu_AVX_VNNI_INT8 (1u << 4) > + > /* CPUID_INDEX_19. */ > > /* EBX. */ > @@ -552,6 +555,7 @@ enum > #define index_cpu_HRESET CPUID_INDEX_7_ECX_1 > #define index_cpu_AVX_IFMA CPUID_INDEX_7_ECX_1 > #define index_cpu_LAM CPUID_INDEX_7_ECX_1 > +#define index_cpu_AVX_VNNI_INT8 CPUID_INDEX_7_ECX_1 > > /* CPUID_INDEX_19. */ > > @@ -792,6 +796,9 @@ enum > #define reg_AVX_IFMA eax > #define reg_LAM eax > > +/* EDX. */ > +#define reg_AVX_VNNI_INT8 edx > + > /* CPUID_INDEX_19. */ > > /* EBX. */ > diff --git a/sysdeps/x86/tst-get-cpu-features.c b/sysdeps/x86/tst-get-cpu= -features.c > index 0c948c2b04..f0585cf330 100644 > --- a/sysdeps/x86/tst-get-cpu-features.c > +++ b/sysdeps/x86/tst-get-cpu-features.c > @@ -215,6 +215,7 @@ do_test (void) > CHECK_CPU_FEATURE_PRESENT (AVX_IFMA); > CHECK_CPU_FEATURE_PRESENT (LAM); > CHECK_CPU_FEATURE_PRESENT (MSRLIST); > + CHECK_CPU_FEATURE_PRESENT (AVX_VNNI_INT8); > CHECK_CPU_FEATURE_PRESENT (AESKLE); > CHECK_CPU_FEATURE_PRESENT (WIDE_KL); > CHECK_CPU_FEATURE_PRESENT (PTWRITE); > @@ -382,6 +383,7 @@ do_test (void) > CHECK_CPU_FEATURE_ACTIVE (FSRCS); > CHECK_CPU_FEATURE_ACTIVE (AMX_FP16); > CHECK_CPU_FEATURE_ACTIVE (AVX_IFMA); > + CHECK_CPU_FEATURE_ACTIVE (AVX_VNNI_INT8); > CHECK_CPU_FEATURE_ACTIVE (AESKLE); > CHECK_CPU_FEATURE_ACTIVE (WIDE_KL); > CHECK_CPU_FEATURE_ACTIVE (PTWRITE); > -- > 2.39.2 > LGTM Reviewed-by: Noah Goldstein