From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by sourceware.org (Postfix) with ESMTPS id BC7453896C02 for ; Wed, 5 Apr 2023 21:05:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BC7453896C02 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-x536.google.com with SMTP id cn12so144391777edb.4 for ; Wed, 05 Apr 2023 14:05:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680728719; 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=JhAWAkBIpiisyRtANNmLRfinF/U3/faKrBh/HwYqkLk=; b=Ioqe32TxwFOcd1Fc14mShmocTDWXI8Fz2a+ahY58UbdqQED24WFV/OMSMer1z0rjcZ 14TY52updXT11wSaG0cRqfbkb1MVWQPuL/tnFX9Qlntkxk9xHpGswFTqLRjMCZSsbE0B KS+WzGDFw4Eex9tW542XJHjzIdZke+Gs3GfHZVZ+3ulx27w8OvTmgqVVBC7EQENarbXw 015rmdVuJElg3ZM245fHnedvX5fjxtIXE0qUjT/y4iQkOF/52RrsTcPwoBs5U49CtIs/ 5NoOhqGo3xkSBtk/R18oC5F+3JTeC/N2rTYVDA6HonEp+NlkcbLAmVGXwuSvnhMELDXe Z7Zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680728719; 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=JhAWAkBIpiisyRtANNmLRfinF/U3/faKrBh/HwYqkLk=; b=XIYoaCq7Vp4wUePCJfdxdqePzZqQs/fu8nmq38MC7N4gCIJtV+sQSl6SKLgL14yD3C UuZ/gtBsqtvwX2Su+JZ/oD5G0tKRhjn0KxTNSOZ5JwYFbYf7JrUDnBZ0vCqlYXEV+9TO tjlIulttX7u1QM9+Ral8h97fmIPBcusWJLL76UU41FZj5p8jmUYLFsKShyhGPC62JpUW MegmAcKY97RF4S3fGKYxoKzSltHELAv93Pvklpp4fv5GmGDuQPT7Gpmq/XgcAgZ4ro+e zdaRSaQTTVuZE/GrJ+89Nrl2xA9UsXEUzEbnPIhebTNxT9XB3rgFpLz/oYgjkbQDG1Ac GsoA== X-Gm-Message-State: AAQBX9fekuctI4GtAhwUQFhcdgMjS+BMOaiG6z85F9h3981bSIPfYulo 2JayFHY5xyjwJxumyyqQd6RE1A8HjfdxcDkiOjNlW/Skhf4= X-Google-Smtp-Source: AKy350bTVYrY/uDJg1zyR31AjsEZGHLtMSkyZTraTm0liMyocuzNPcIK4WrdVnJykno3U+QutH7hWL1Dzsi7B0uObTM= X-Received: by 2002:a17:907:8e88:b0:947:54ef:374 with SMTP id tx8-20020a1709078e8800b0094754ef0374mr2115217ejc.0.1680728719220; Wed, 05 Apr 2023 14:05:19 -0700 (PDT) MIME-Version: 1.0 References: <20230405162144.984598-1-hjl.tools@gmail.com> <20230405162144.984598-15-hjl.tools@gmail.com> In-Reply-To: <20230405162144.984598-15-hjl.tools@gmail.com> From: Noah Goldstein Date: Wed, 5 Apr 2023 16:05:07 -0500 Message-ID: Subject: Re: [PATCH 14/19] : Add AVX-IFMA 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.6 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:27=E2=80=AFAM H.J. Lu via Libc-alpha wrote: > > Add AVX-IFMA support to . > --- > manual/platform.texi | 3 +++ > sysdeps/x86/bits/platform/x86.h | 1 + > sysdeps/x86/cpu-features.c | 2 ++ > sysdeps/x86/include/cpu-features.h | 3 +++ > sysdeps/x86/tst-get-cpu-features.c | 2 ++ > 5 files changed, 11 insertions(+) > > diff --git a/manual/platform.texi b/manual/platform.texi > index 7d4aa3d339..af75e5c413 100644 > --- a/manual/platform.texi > +++ b/manual/platform.texi > @@ -219,6 +219,9 @@ Leaf (EAX =3D 23H). > @item > @code{AVX2} -- The AVX2 instruction extensions. > > +@item > +@code{AVX_IFMA} -- The AVX-IFMA instruction extensions. > + > @item > @code{AVX_VNNI} -- The AVX-VNNI instruction extensions. > > diff --git a/sysdeps/x86/bits/platform/x86.h b/sysdeps/x86/bits/platform/= x86.h > index 2776c69b16..abc0116607 100644 > --- a/sysdeps/x86/bits/platform/x86.h > +++ b/sysdeps/x86/bits/platform/x86.h > @@ -300,6 +300,7 @@ enum > x86_cpu_WRMSRNS =3D x86_cpu_index_7_ecx_1_eax + 19, > x86_cpu_AMX_FP16 =3D x86_cpu_index_7_ecx_1_eax + 21, > x86_cpu_HRESET =3D x86_cpu_index_7_ecx_1_eax + 22, > + x86_cpu_AVX_IFMA =3D x86_cpu_index_7_ecx_1_eax + 23, > x86_cpu_LAM =3D x86_cpu_index_7_ecx_1_eax + 26, > > x86_cpu_index_19_ebx > diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c > index 6c1b5efc5f..06fae443a8 100644 > --- a/sysdeps/x86/cpu-features.c > +++ b/sysdeps/x86/cpu-features.c > @@ -139,6 +139,8 @@ update_active (struct cpu_features *cpu_features) > cpu_features->preferred[index_arch_AVX_Fast_Unaligned_L= oad] > |=3D bit_arch_AVX_Fast_Unaligned_Load; > } > + /* Determine if AVX-IFMA is usable. */ > + CPU_FEATURE_SET_ACTIVE (cpu_features, AVX_IFMA); > /* Determine if AVX-VNNI is usable. */ > CPU_FEATURE_SET_ACTIVE (cpu_features, AVX_VNNI); > /* Determine if FMA is usable. */ > diff --git a/sysdeps/x86/include/cpu-features.h b/sysdeps/x86/include/cpu= -features.h > index 07c841c1d4..1f4b6831f9 100644 > --- a/sysdeps/x86/include/cpu-features.h > +++ b/sysdeps/x86/include/cpu-features.h > @@ -311,6 +311,7 @@ enum > #define bit_cpu_FSRCS (1u << 12) > #define bit_cpu_AMX_FP16 (1u << 21) > #define bit_cpu_HRESET (1u << 22) > +#define bit_cpu_AVX_IFMA (1u << 23) > #define bit_cpu_LAM (1u << 26) > > /* CPUID_INDEX_19. */ > @@ -549,6 +550,7 @@ enum > #define index_cpu_FSRCS CPUID_INDEX_7_ECX_1 > #define index_cpu_AMX_FP16 CPUID_INDEX_7_ECX_1 > #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 > > /* CPUID_INDEX_19. */ > @@ -787,6 +789,7 @@ enum > #define reg_FSRCS eax > #define reg_AMX_FP16 eax > #define reg_HRESET eax > +#define reg_AVX_IFMA eax > #define reg_LAM eax > > /* CPUID_INDEX_19. */ > diff --git a/sysdeps/x86/tst-get-cpu-features.c b/sysdeps/x86/tst-get-cpu= -features.c > index c0f222cb77..3a2d4671ec 100644 > --- a/sysdeps/x86/tst-get-cpu-features.c > +++ b/sysdeps/x86/tst-get-cpu-features.c > @@ -212,6 +212,7 @@ do_test (void) > CHECK_CPU_FEATURE_PRESENT (WRMSRNS); > CHECK_CPU_FEATURE_PRESENT (AMX_FP16); > CHECK_CPU_FEATURE_PRESENT (HRESET); > + CHECK_CPU_FEATURE_PRESENT (AVX_IFMA); > CHECK_CPU_FEATURE_PRESENT (LAM); > CHECK_CPU_FEATURE_PRESENT (AESKLE); > CHECK_CPU_FEATURE_PRESENT (WIDE_KL); > @@ -379,6 +380,7 @@ do_test (void) > CHECK_CPU_FEATURE_ACTIVE (FSRS); > CHECK_CPU_FEATURE_ACTIVE (FSRCS); > CHECK_CPU_FEATURE_ACTIVE (AMX_FP16); > + CHECK_CPU_FEATURE_ACTIVE (AVX_IFMA); > CHECK_CPU_FEATURE_ACTIVE (AESKLE); > CHECK_CPU_FEATURE_ACTIVE (WIDE_KL); > CHECK_CPU_FEATURE_ACTIVE (PTWRITE); > -- > 2.39.2 > LGTM Reviewed-by: Noah Goldstein