diff options
-rw-r--r-- | src/runtime/CPUUtils.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/runtime/CPUUtils.cpp b/src/runtime/CPUUtils.cpp index b7aa0d5487..f3355a740b 100644 --- a/src/runtime/CPUUtils.cpp +++ b/src/runtime/CPUUtils.cpp @@ -95,6 +95,7 @@ bool model_supports_fp16(CPUModel model) return false; } } + /* Convert an MIDR register value to a CPUModel enum value. */ CPUModel midr_to_model(const unsigned int midr) { @@ -145,6 +146,19 @@ CPUModel midr_to_model(const unsigned int midr) break; } } + else if(implementer == 0x48) // HiSilicon CPUs + { + // Only CPUs we have code paths for are detected. All other CPUs can be safely classed as "GENERIC" + switch(cpunum) + { + case 0xd40: // A76 (Kirin 980) + model = CPUModel::GENERIC_FP16_DOT; + break; + default: + model = CPUModel::GENERIC; + break; + } + } return model; } |