编译出现vld1q_f32_x4未定义

问题现象描述

编译报错,NEON指令的结构体函数vld1q_f32_x4未定义。

关键过程、根本原因分析

GCC版本不同,支持的NEON指令会有变化。Milvus依赖的GCC版本比当前版本更高。

结论、解决方案及效果

已知GCC 9.3.0以下都会报错。若是不升级GCC,要注意修改文件内容。“~/milvus/cmake_build/thirdparty/knowhere/knowhere-src/src/simd/distance_neon.cc”,将其中的x4修改为x3,但是内容同时需要更新。

若是将GCC从9.3.0提升到10.3.1,可以直接解决这个问题。