潮声隔雨深 · 2020年02月14日

请问aarch64-linux-android-clang++ 支持neon 指令集编译吗?

请问aarch64-linux-android-clang++ 支持neon 指令集编译吗?用neon指令集 写了一个算法, 相同的代码用aarch64-linux-android-gcc 可以编译过,aarch64-linux-android-clang++ 一直出错:

pengfei@ubuntu:/mnt/hgfs/share/test$ make
aarch64-linux-android-clang++ ./cost_accumulation.s ./case_cost_accumulation.c -o case_cost_accumulation
clang50++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
/tmp/case_cost_accumulation-23c6f2.o: In function `main':
./case_cost_accumulation.c:(.text+0x334): undefined reference to `asm_cost_accumulation(unsigned long, unsigned long, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short)'
clang50++: error: linker command failed with exit code 1 (use -v to see invocation)
make: * [case_cost_accumulation] Error 1

sm_cost_accumulation()函数使用neon指令集编写的,clang++一直提示找不到该函数,怀疑是clang++不支持neon指令, gcc下是可以编译过的

1 个回答 得票排序 · 时间排序
一知半解 · 2020年02月14日

clang是支持neon指令的。只是clang的assembler语法(assembler directive)和GNU as不一完全样。你的cost_assumulation.s实现估计需要根据clang的as语法调整一下。

你的回答