63 lines
2.3 KiB
Diff
63 lines
2.3 KiB
Diff
|
|
From 165d587b52f7c8459d9a9deca389610f9165b33a Mon Sep 17 00:00:00 2001
|
||
|
|
From: Quanxian Wang <quanxian.wang@intel.com>
|
||
|
|
Date: Wed, 8 Nov 2023 12:44:56 +0800
|
||
|
|
Subject: [PATCH] target/i386: Add support for AVX-NE-CONVERT in CPUID
|
||
|
|
enumeration
|
||
|
|
|
||
|
|
commit ecd2e6ca037d7bf3673c5478590d686d5cd6135a upstream.
|
||
|
|
|
||
|
|
AVX-NE-CONVERT is a new set of instructions which can convert low
|
||
|
|
precision floating point like BF16/FP16 to high precision floating point
|
||
|
|
FP32, as well as convert FP32 elements to BF16. This instruction allows
|
||
|
|
the platform to have improved AI capabilities and better compatibility.
|
||
|
|
|
||
|
|
The bit definition:
|
||
|
|
CPUID.(EAX=7,ECX=1):EDX[bit 5]
|
||
|
|
|
||
|
|
Add CPUID definition for AVX-NE-CONVERT.
|
||
|
|
|
||
|
|
Intel-SIG: commit ecd2e6ca037d target/i386: Add support for AVX-NE-CONVERT in CPUID enumeration.
|
||
|
|
Backport GNR and SRF ISA into QEMU-6.2
|
||
|
|
|
||
|
|
Signed-off-by: Jiaxi Chen <jiaxi.chen@linux.intel.com>
|
||
|
|
Signed-off-by: Tao Su <tao1.su@linux.intel.com>
|
||
|
|
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
|
||
|
|
Message-Id: <20230303065913.1246327-6-tao1.su@linux.intel.com>
|
||
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||
|
|
[ Quanxian Wang: amend commit log ]
|
||
|
|
Signed-off-by: Quanxian Wang <quanxian.wang@intel.com>
|
||
|
|
---
|
||
|
|
target/i386/cpu.c | 2 +-
|
||
|
|
target/i386/cpu.h | 2 ++
|
||
|
|
2 files changed, 3 insertions(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||
|
|
index a14284a81b..d36174d689 100644
|
||
|
|
--- a/target/i386/cpu.c
|
||
|
|
+++ b/target/i386/cpu.c
|
||
|
|
@@ -911,7 +911,7 @@ FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
|
||
|
|
.type = CPUID_FEATURE_WORD,
|
||
|
|
.feat_names = {
|
||
|
|
NULL, NULL, NULL, NULL,
|
||
|
|
- "avx-vnni-int8", NULL, NULL, NULL,
|
||
|
|
+ "avx-vnni-int8", "avx-ne-convert", NULL, NULL,
|
||
|
|
NULL, NULL, NULL, NULL,
|
||
|
|
NULL, NULL, NULL, NULL,
|
||
|
|
NULL, NULL, NULL, NULL,
|
||
|
|
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
||
|
|
index b81d77084c..93c8bd6a13 100644
|
||
|
|
--- a/target/i386/cpu.h
|
||
|
|
+++ b/target/i386/cpu.h
|
||
|
|
@@ -898,6 +898,8 @@ uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
||
|
|
#define CPUID_7_1_EAX_AVX_IFMA (1U << 23)
|
||
|
|
/* Support for VPDPB[SU,UU,SS]D[,S] */
|
||
|
|
#define CPUID_7_1_EDX_AVX_VNNI_INT8 (1U << 4)
|
||
|
|
+/* AVX NE CONVERT Instructions */
|
||
|
|
+#define CPUID_7_1_EDX_AVX_NE_CONVERT (1U << 5)
|
||
|
|
|
||
|
|
/* Do not exhibit MXCSR Configuration Dependent Timing (MCDT) behavior */
|
||
|
|
#define CPUID_7_2_EDX_MCDT_NO (1U << 5)
|
||
|
|
--
|
||
|
|
2.27.0
|
||
|
|
|