I disassembled an arm binary previously compiled with neon flags:
-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize
The dump shows a vdiv.f64 instruction generated by the compiler. According to the arm manual for armv7 (cortex-a9) neon simd isa does not support vdiv instruction but the floating point (vfp) engine does. Why is this instruction generated? is it then a floating point instruction that will be executed by the vfp? Both neon and VFP support addition and multiplication for floating point so how can I differenciate them from eahc other?
D[n]
andQ[n]
and instruction-postfixesF32
(andI[n]
for integer instructions), VFP usesS[n]
andD[n]
and instruction-postfixesF64
orF32
. It turns out that the combination is unambiguous. – EOF