Updated cpu detection

* Added the case in the cpu detection code for Klein cores
* Added has_sve() and set_sve() methods in CpuInfo
* Detection code checks for presence of SVE via HWCAP_SVE
* Updated the heuristic in sve kernels to check for the absence of Klein
* Resolves: COMPMID-4085

Change-Id: I0b8c72ff19dc5a3a81628d121a1afa836e724b4f
Signed-off-by: Pablo Marquez Tello <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5257
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/core/CPP/CPPTypes.cpp b/src/core/CPP/CPPTypes.cpp
index 139e106..0850df2 100644
--- a/src/core/CPP/CPPTypes.cpp
+++ b/src/core/CPP/CPPTypes.cpp
@@ -42,6 +42,11 @@
     _dotprod = dotprod;
 }
 
+void CPUInfo::set_sve(const bool sve)
+{
+    _sve = sve;
+}
+
 void CPUInfo::set_cpu_model(unsigned int cpuid, CPUModel model)
 {
     ARM_COMPUTE_ERROR_ON(cpuid >= _percpu.size());
@@ -55,6 +60,12 @@
 {
     return _percpu.size();
 }
+
+bool CPUInfo::has_sve() const
+{
+    return _sve;
+}
+
 bool CPUInfo::has_fp16() const
 {
     return _fp16;