mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-08 14:23:19 +00:00
ARM: 9272/1: vfp: Add hwcap for FEAT_AA32I8MM
Int8 matrix multiplication (FEAT_AA32I8MM) is a feature present in AArch32 state for Armv8 and is represented by ISAR6.I8MM identification register. This feature denotes the presence of VSMMLA, VSUDOT, VUMMLA, VUSMMLA and VUSDOT instructions and hence adding a hwcap will enable the userspace to check it before trying to use those instructions. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
23b6d4ad6e
commit
956ca3a4eb
@ -33,6 +33,7 @@
|
|||||||
#define HWCAP_ASIMDDP (1 << 24)
|
#define HWCAP_ASIMDDP (1 << 24)
|
||||||
#define HWCAP_ASIMDFHM (1 << 25)
|
#define HWCAP_ASIMDFHM (1 << 25)
|
||||||
#define HWCAP_ASIMDBF16 (1 << 26)
|
#define HWCAP_ASIMDBF16 (1 << 26)
|
||||||
|
#define HWCAP_I8MM (1 << 27)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* HWCAP2 flags - for elf_hwcap2 (in kernel) and AT_HWCAP2
|
* HWCAP2 flags - for elf_hwcap2 (in kernel) and AT_HWCAP2
|
||||||
|
@ -1254,6 +1254,7 @@ static const char *hwcap_str[] = {
|
|||||||
"asimddp",
|
"asimddp",
|
||||||
"asimdfhm",
|
"asimdfhm",
|
||||||
"asimdbf16",
|
"asimdbf16",
|
||||||
|
"i8mm",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -857,6 +857,12 @@ static int __init vfp_init(void)
|
|||||||
*/
|
*/
|
||||||
if (cpuid_feature_extract_field(isar6, 20) == 0x1)
|
if (cpuid_feature_extract_field(isar6, 20) == 0x1)
|
||||||
elf_hwcap |= HWCAP_ASIMDBF16;
|
elf_hwcap |= HWCAP_ASIMDBF16;
|
||||||
|
/*
|
||||||
|
* Check for the presence of Advanced SIMD and floating point
|
||||||
|
* Int8 matrix multiplication instructions instructions.
|
||||||
|
*/
|
||||||
|
if (cpuid_feature_extract_field(isar6, 24) == 0x1)
|
||||||
|
elf_hwcap |= HWCAP_I8MM;
|
||||||
|
|
||||||
/* Extract the architecture version on pre-cpuid scheme */
|
/* Extract the architecture version on pre-cpuid scheme */
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user