[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v1 01/11] target/arm: Add isar_feature_{aa32, aa64, aa64_sve}_bf1
From: |
Richard Henderson |
Subject: |
[PATCH v1 01/11] target/arm: Add isar_feature_{aa32, aa64, aa64_sve}_bf16 |
Date: |
Fri, 16 Apr 2021 16:59:18 -0700 |
Note that the SVE BFLOAT16 support does not require SVE2,
it is an independent extension.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/arm/cpu.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index 134dc65e34..38db20c721 100644
--- a/target/arm/cpu.h
+++ b/target/arm/cpu.h
@@ -3783,6 +3783,11 @@ static inline bool isar_feature_aa32_predinv(const
ARMISARegisters *id)
return FIELD_EX32(id->id_isar6, ID_ISAR6, SPECRES) != 0;
}
+static inline bool isar_feature_aa32_bf16(const ARMISARegisters *id)
+{
+ return FIELD_EX32(id->id_isar6, ID_ISAR6, BF16) != 0;
+}
+
static inline bool isar_feature_aa32_i8mm(const ARMISARegisters *id)
{
return FIELD_EX32(id->id_isar6, ID_ISAR6, I8MM) != 0;
@@ -4112,6 +4117,11 @@ static inline bool isar_feature_aa64_dcpodp(const
ARMISARegisters *id)
return FIELD_EX64(id->id_aa64isar1, ID_AA64ISAR1, DPB) >= 2;
}
+static inline bool isar_feature_aa64_bf16(const ARMISARegisters *id)
+{
+ return FIELD_EX64(id->id_aa64isar1, ID_AA64ISAR1, BF16) != 0;
+}
+
static inline bool isar_feature_aa64_fp_simd(const ARMISARegisters *id)
{
/* We always set the AdvSIMD and FP fields identically. */
@@ -4256,6 +4266,11 @@ static inline bool isar_feature_aa64_sve2_bitperm(const
ARMISARegisters *id)
return FIELD_EX64(id->id_aa64zfr0, ID_AA64ZFR0, BITPERM) != 0;
}
+static inline bool isar_feature_aa64_sve_bf16(const ARMISARegisters *id)
+{
+ return FIELD_EX64(id->id_aa64zfr0, ID_AA64ZFR0, BFLOAT16) != 0;
+}
+
static inline bool isar_feature_aa64_sve2_sha3(const ARMISARegisters *id)
{
return FIELD_EX64(id->id_aa64zfr0, ID_AA64ZFR0, SHA3) != 0;
--
2.25.1
- [PATCH v1 for-6.1 00/11] target/arm: Implement BFloat16, Richard Henderson, 2021/04/16
- [PATCH v1 02/11] target/arm: Unify unallocated path in disas_fp_1src, Richard Henderson, 2021/04/16
- [PATCH v1 01/11] target/arm: Add isar_feature_{aa32, aa64, aa64_sve}_bf16,
Richard Henderson <=
- [PATCH v1 03/11] target/arm: Implement scalar float32 to bfloat16 conversion, Richard Henderson, 2021/04/16
- [PATCH v1 04/11] target/arm: Implement vector float32 to bfloat16 conversion, Richard Henderson, 2021/04/16
- [PATCH v1 05/11] fpu: Add float_round_to_odd_inf, Richard Henderson, 2021/04/16
- [PATCH v1 06/11] target/arm: Implement bfloat16 dot product (vector), Richard Henderson, 2021/04/16
- [PATCH v1 08/11] target/arm: Implement bfloat16 matrix multiply accumulate, Richard Henderson, 2021/04/16
- [PATCH v1 07/11] target/arm: Implement bfloat16 dot product (indexed), Richard Henderson, 2021/04/16
- [PATCH v1 09/11] target/arm: Implement bfloat widening fma (vector), Richard Henderson, 2021/04/16
- [PATCH v1 11/11] target/arm: Enable BFloat16 extensions, Richard Henderson, 2021/04/16
- [PATCH v1 10/11] target/arm: Implement bfloat widening fma (indexed), Richard Henderson, 2021/04/16