1
0
mirror of https://github.com/google/cpu_features.git synced 2025-04-27 23:22:31 +02:00

Update AArch64 features to Linux 6.6. (#347)

This commit is contained in:
Tamas Zsoldos 2023-11-27 09:58:26 +01:00 committed by GitHub
parent 8cfb520efb
commit 104602c8ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 1 deletions

View File

@ -190,6 +190,8 @@ typedef struct {
int smebi32i32 : 1; // 1-bit binary to 32-bit integer outer product. int smebi32i32 : 1; // 1-bit binary to 32-bit integer outer product.
int smeb16b16 : 1; // SME2.1 BFloat16 instructions. int smeb16b16 : 1; // SME2.1 BFloat16 instructions.
int smef16f16 : 1; // FP16 to FP16 outer product. int smef16f16 : 1; // FP16 to FP16 outer product.
int mops : 1; // Standardized memory operations.
int hbc : 1; // Hinted conditional branches.
// Make sure to update Aarch64FeaturesEnum below if you add a field here. // Make sure to update Aarch64FeaturesEnum below if you add a field here.
} Aarch64Features; } Aarch64Features;
@ -284,6 +286,8 @@ typedef enum {
AARCH64_SME_BI32I32, AARCH64_SME_BI32I32,
AARCH64_SME_B16B16, AARCH64_SME_B16B16,
AARCH64_SME_F16F16, AARCH64_SME_F16F16,
AARCH64_MOPS,
AARCH64_HBC,
AARCH64_LAST_, AARCH64_LAST_,
} Aarch64FeaturesEnum; } Aarch64FeaturesEnum;

View File

@ -104,6 +104,8 @@ CPU_FEATURES_START_CPP_NAMESPACE
#define AARCH64_HWCAP2_SME_BI32I32 (1UL << 40) #define AARCH64_HWCAP2_SME_BI32I32 (1UL << 40)
#define AARCH64_HWCAP2_SME_B16B16 (1UL << 41) #define AARCH64_HWCAP2_SME_B16B16 (1UL << 41)
#define AARCH64_HWCAP2_SME_F16F16 (1UL << 42) #define AARCH64_HWCAP2_SME_F16F16 (1UL << 42)
#define AARCH64_HWCAP2_MOPS (1UL << 43)
#define AARCH64_HWCAP2_HBC (1UL << 44)
// http://elixir.free-electrons.com/linux/latest/source/arch/arm/include/uapi/asm/hwcap.h // http://elixir.free-electrons.com/linux/latest/source/arch/arm/include/uapi/asm/hwcap.h
#define ARM_HWCAP_SWP (1UL << 0) #define ARM_HWCAP_SWP (1UL << 0)

View File

@ -112,7 +112,10 @@
AARCH64_HWCAP2_SME_BI32I32) \ AARCH64_HWCAP2_SME_BI32I32) \
LINE(AARCH64_SME_B16B16, smeb16b16, "smeb16b16", 0, \ LINE(AARCH64_SME_B16B16, smeb16b16, "smeb16b16", 0, \
AARCH64_HWCAP2_SME_B16B16) \ AARCH64_HWCAP2_SME_B16B16) \
LINE(AARCH64_SME_F16F16, smef16f16, "smef16f16", 0, AARCH64_HWCAP2_SME_F16F16) LINE(AARCH64_SME_F16F16, smef16f16, "smef16f16", 0, \
AARCH64_HWCAP2_SME_F16F16) \
LINE(AARCH64_MOPS, mops, "mops", 0, AARCH64_HWCAP2_MOPS) \
LINE(AARCH64_HBC, hbc, "hbc", 0, AARCH64_HWCAP2_HBC)
#define INTROSPECTION_PREFIX Aarch64 #define INTROSPECTION_PREFIX Aarch64
#define INTROSPECTION_ENUM_PREFIX AARCH64 #define INTROSPECTION_ENUM_PREFIX AARCH64
#include "define_introspection_and_hwcaps.inl" #include "define_introspection_and_hwcaps.inl"

View File

@ -310,6 +310,8 @@ CPU revision : 3)");
EXPECT_FALSE(info.features.smebi32i32); EXPECT_FALSE(info.features.smebi32i32);
EXPECT_FALSE(info.features.smeb16b16); EXPECT_FALSE(info.features.smeb16b16);
EXPECT_FALSE(info.features.smef16f16); EXPECT_FALSE(info.features.smef16f16);
EXPECT_FALSE(info.features.mops);
EXPECT_FALSE(info.features.hbc);
} }
#elif defined(CPU_FEATURES_OS_MACOS) #elif defined(CPU_FEATURES_OS_MACOS)
TEST_F(CpuidAarch64Test, FromDarwinSysctlFromName) { TEST_F(CpuidAarch64Test, FromDarwinSysctlFromName) {