diff --git a/driver/others/dynamic_arm64.c b/driver/others/dynamic_arm64.c index b29e6e46c..ef2597234 100644 --- a/driver/others/dynamic_arm64.c +++ b/driver/others/dynamic_arm64.c @@ -137,6 +137,8 @@ extern gotoblas_t gotoblas_CORTEXA55; #endif extern void openblas_warning(int verbose, const char * msg); +#define FALLBACK_VERBOSE 1 +#define NEOVERSEN1_FALLBACK "OpenBLAS : Your OS does not support SVE instructions. OpenBLAS is using Neoverse N1 kernels as a fallback, which may give poorer performance.\n" #define NUM_CORETYPES 13 @@ -284,14 +286,16 @@ static gotoblas_t *get_coretype(void) { return &gotoblas_NEOVERSEN1; #ifndef NO_SVE case 0xd49: - if (!(getauxval(AT_HWCAP) & HWCAP_SVE)) + if (!(getauxval(AT_HWCAP) & HWCAP_SVE)) { + openblas_warning(FALLBACK_VERBOSE, NEOVERSEN1_FALLBACK); return &gotoblas_NEOVERSEN1; - else + } else return &gotoblas_NEOVERSEN2; case 0xd40: - if (!(getauxval(AT_HWCAP) & HWCAP_SVE)) + if (!(getauxval(AT_HWCAP) & HWCAP_SVE)) { + openblas_warning(FALLBACK_VERBOSE, NEOVERSEN1_FALLBACK); return &gotoblas_NEOVERSEN1; - else + }else return &gotoblas_NEOVERSEV1; #endif case 0xd05: // Cortex A55