ARM NEON汇编程序错误:"指令不能有条件"

A P*_*son 2 math assembly xcode arm neon

根据手臂信息中心,当我尝试时,vadd可以顺便执行

vaddeq.f32 d0,d0,d1
Run Code Online (Sandbox Code Playgroud)

Xcode返回

65:instruction cannot be conditional -- vaddeq.f32 d0,d0,d1
Run Code Online (Sandbox Code Playgroud)

我注意到的一件事是它似乎只是NEON指令给出了这个错误.VFP指令不会产生这些错误.

我是否需要设置编译器标志才能启用NEON条件指令?

Var*_*der 5

ARM体系结构参考手册说:

 An ARM Advanced SIMD VADD instruction must be unconditional.
Run Code Online (Sandbox Code Playgroud)

即,如果您处于ARM模式,那些指令不是有条件的.如果将它们放在IT块中,您可以在Thumb-2中有条件地使用它们.

  .syntax unified
  .code 16
  .globl _foo
_foo:
  cmp r0, #0
  it eq
  vaddeq.f32 d0, d0, d1
  bx lr
Run Code Online (Sandbox Code Playgroud)

  • 大.现在,您可以继续单击接受此答案的按钮,然后对您提出的所有其他问题执行相同操作,并且人们会花时间回答. (2认同)