I am new to A8 architecture and have
read some documents about the A8
architecture.
Today, I see the options of gcc as the
following:
-mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp
I have a question about fpu=neon. What does
it mean? Does it mean that all floating point
operations are performed on neon?
We know that neon only support single
precision FP SIMD operation.
Are scalar FP operation and double
precision FP operation performed on NEON?
Do such operations run faster on VFP than onNEON?
If so, why?
Does gcc support SIMD operation on NEON and
scalar single precision FP operation and double
precision FP operation on VFP?
I am new to A8 architecture and have
read some documents about the A8
architecture.
Today, I see the options of gcc as the
following:
-mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp
I have a question about fpu=neon. What does
it mean?
It means the CPU has a NEON unit. What the compiler chooses to do with
that information is up to it.
Does it mean that all floating point operations are performed on neon?
No, it means that the unit is there, should the compiler desire to use it.
We know that neon only support single precision FP SIMD operation.
Are scalar FP operation and double precision FP operation performed on
NEON? Do such operations run faster on VFP than on NEON? If so, why?
Double precision can only be done in VFP. Scalar single precision can
be done in NEON by wasting half the registers. (The A8 VFP/NEON unit
can execute some VFP instructions in NEON pipelines, but that's a
different matter).
Does gcc support SIMD operation on NEON
Depends on who you ask. It sometimes spits out some simd instructions,
but it usually does a rather poor job of it.
and scalar single precision FP operation and double precision FP
operation on VFP?