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>
 #define HWCAP_ASIMDDP  (1 << 24)
 #define HWCAP_ASIMDFHM (1 << 25)
 #define HWCAP_ASIMDBF16        (1 << 26)
+#define HWCAP_I8MM     (1 << 27)
 
 /*
  * HWCAP2 flags - for elf_hwcap2 (in kernel) and AT_HWCAP2
 
        "asimddp",
        "asimdfhm",
        "asimdbf16",
+       "i8mm",
        NULL
 };
 
 
                 */
                if (cpuid_feature_extract_field(isar6, 20) == 0x1)
                        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 */
        } else {