Я разобрал бинарный файл arm, ранее скомпилированный с неоновыми флагами:
-mcpu = cortex-a9 -mfpu = neon -mfloat-abi = softfp -ftree-vectorize
Дамп показывает инструкцию vdiv.f64, сгенерированную компилятором. Согласно руководству по arm для armv7 (cortex-a9) neon simd isa не поддерживает инструкцию vdiv, но движок с плавающей запятой (vfp) поддерживает. Почему генерируется эта инструкция? Значит, vfp будет выполнять инструкцию с плавающей запятой? И neon, и VFP поддерживают сложение и умножение для чисел с плавающей запятой, так как я могу отличить их от других?
D[n]
иQ[n]
и постфиксы инструкцийF32
(иI[n]
для целочисленных инструкций), VFP используетS[n]
иD[n]
и постфиксы инструкцийF64
илиF32
. Оказывается, сочетание однозначное. - person EOF   schedule 27.07.2016