This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Understanding VPf and NEON link

Note: This was originally posted on 14th March 2011 at http://forums.arm.com

I'd like to understand exactly how NEON can be used instead of VPf.

I understand that
FADDS
is now replaced by
VADD.f32

But I have some questions about that.
- Does the 2 syntax have the same memory representation (do they have the same hexadecimal representation) ??? (I guess Yes, but i'd like to be sure)
- FADDS can be conditionnal !!! Can anybody give me an example ?
- if FADDS can be conditionnal then VADD.f32 should be too ! What is the correct syntaxe for a conditionnal VADD.f32
- FADDS is now VADD.f32 and is executed into NEON pipeline. Does it mean that VADD.f32 (and FADDS) execute in 1 cycle instead of 9.

Is I'm right,
FADDD is replaced by VADD.f64 but is not executed into NEON pipeline, so the VPF cycle table must be used !!!
FADDD not seems to be a conditionnal instruction! Are we ok about that ?

Thank's
Etienne
Parents
  • Note: This was originally posted on 14th March 2011 at http://forums.arm.com

    A few years back ARM changed the syntax, never heard why.  This didn't change the VFP instructions, just how you wrote it down.  So

      FADDS  s0, s1, s2

    Becomes:

      VADD.F32 s0, s1, s2

    Same instruction, same bit pattern, just a different way of writing it down.

    NEON (or Advanced SIMD to use its other name) is that it only supports single precision.  So anything used double precision (F64) will always be VFP, not NEON.

    One thing to remember is that VFP and NEON are instruction sets definitions - not pieces of hardware.  Its up to each implementation to decide how to implement them in hardware.  Some have separate (ish) blocks for each, others will have more tightly integrated blocks.
Reply
  • Note: This was originally posted on 14th March 2011 at http://forums.arm.com

    A few years back ARM changed the syntax, never heard why.  This didn't change the VFP instructions, just how you wrote it down.  So

      FADDS  s0, s1, s2

    Becomes:

      VADD.F32 s0, s1, s2

    Same instruction, same bit pattern, just a different way of writing it down.

    NEON (or Advanced SIMD to use its other name) is that it only supports single precision.  So anything used double precision (F64) will always be VFP, not NEON.

    One thing to remember is that VFP and NEON are instruction sets definitions - not pieces of hardware.  Its up to each implementation to decide how to implement them in hardware.  Some have separate (ish) blocks for each, others will have more tightly integrated blocks.
Children
No data