mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-02-09 23:50:07 +00:00
cpu_features: Update AArch64 features to Linux 6.6
This commit is contained in:
parent
78295866e6
commit
1ad631128f
@ -180,6 +180,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;
|
||||||
@ -276,6 +278,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;
|
||||||
|
|
||||||
|
@ -92,6 +92,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)
|
||||||
|
@ -100,7 +100,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"
|
@ -324,6 +324,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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user