I have a couple of question about the default FPU in ARMv8. In some places is implied that the FPU and the SIMD engine is same unit, implying that the FPU and the NEON share the same pipeline execution state(s). But in other places is implied that NEON and VFP are different units: NEON being the AdvSIMD engine and VFP the FPU. Like the ARM website for Cortex-A53, that implies they are separated units (looking at the image) and hints that VFPv4 is the Floating-Point Unit.
Some people say that the AdvSIMD is the FPU for AArch64 and VFPv3 is the FPU for AArch32, but I have my doubts.
For instance, if I run a FP instruction, like FADD:
FADD S0, S1, S2
In which unit will it be executed? VFP or NEON/AdvSIMD?
I searched for some days, and don't got much luck., so I would me honored and grateful if someone would help me.
The majority of Cortex-A, from ARMv8, that I saw, have VFP and NEON. So, please, let's work in that scenario. I just want to know the main FPU. That's it. And I know this instruction is scalar. I want to know in which unit the scalar FP operations takes place. That's it. The problem that I am trying to solve is that I am learning the ARMv8 architecture, just as I learned x86, x86_64 and ARMv7 I want to know which is the main FPU in AArch64. Many people say it's NEON (i.e. it would run FPU and SIMD instructions) and some other says it's good 'n old VFP. I am already confused, because in ARMv7 VFP and NEON instructions are very much similar, tbh. I've been drived to think that AdvSIMD (NEON) is a single inuit for FP and SIMD, but the images show the FPU and SIMD separated, but, as you said, the importance of this can be tonned down.