Search code examples
neon

How to tell NEON instructions from VFP instructions?


As both NEON and VFP instructions are prefixed with v, like vpush/vpop, is there a simple way to tell NEON instructions from VFP?


Solution

  • VFP instructions are scalar operations, so if the instruction has the .f32 suffix and operates on s registers, it's VFP. If it operates on d or q registers, it's NEON.

    If the instruction has the .f64 suffix, it's a VFP instruction (there are no f64 instructions in 32-bit NEON).

    If the instruction has an integer suffix (like .i8 or .s32 or .u16), it's NEON; VFP doesn't have integer instructions[*]

    * I'm glossing over scalar conversion instructions slightly. You can read about the details in the ARM reference manual.