int main(){
__asm volatile
{
// load data
vld1.16 {q0, q1}, [r0]!
...ARMCC жалуется, что `q0` не определена компиляцией неоновых сборок
используя команду
armcc --cpu=Cortex-A9 -O2 -Otime --vectorize --remarks -g --md --depend_format=unix_escaped --no_depend_system_headers -c -o test.o test.c
Это ошибка показывает, что
"test.c", line 7: Error: #20: identifier "q0" is undefined
vld1.16 {q0, q1}, [r0]!
^
"test.c", line 8: Error: #20: identifier "q2" is undefined
vld1.16 {q2, q3}, [r0]!
^
Я не пропустить какие-либо флаги в команде armcc
?
версия armcc
является
Product: ARM Compiler 5.05
Component: ARM Compiler 5.05 (build 41)
Tool: armcc [4d0eb9]
For support see http://www.arm.com/support/
Software supplied by: ARM Limited
Просто FYI, внутренне присущие ручной векторизации, как правило, лучший выбор, чем inline asm, поскольку в наши дни компиляторы отлично справляются с ними. (По крайней мере, gcc и clang, не знаю о armcc.) См. Https://gcc.gnu.org/wiki/DontUseInlineAsm по причинам, в том числе, что это может фактически привести к более медленному коду, предотвращая распространение компилятора константами или другие оптимизации. –