Carsten, Sorry for top-post.
> Marvell Dove and Nvidia Tegra 2 is VFPv3-D16, which means our current > ARMv7 port does not at all run on Marvell Dove or Nvidia Tegra 2 - it > doesn't have the registers 17-32 which our code uses. This was one key > argument against enabling NEON by default. If VFPv3 is described as "Broadly compatible with VFPv2 but adds ...", here v2 has only 16 64-bit FPU registers. Then what it is describing is only ISA compatible and no possible at runtime compatible like soft Vs softfp? Will those No.17-32 registers were definitely used in all cases if we use -mfpu=vfpv3? (default as D32) > For hardfp there could be a small discussion if we'd use vfpv3-d16 to include > more target possibilities, IMHO, the reason to use hard is for those performance benefit from hard flag, then put compatibility as 2nd considering, if so, why still use vfpv3-d16 (which is implicitly meaning for compatibility with most part of HD). > but for softfp we might as well move ahead to mfpu=neon. As that link you pointed out: "While optimizing the entire system for NEON would be awesome, there is very little benefit on standard code " -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Carsten Munk Sent: Monday, November 08, 2010 4:56 AM To: meego-dev Subject: Re: [MeeGo-dev] ARMv7, Qt and NEON 2010/8/18 Carsten Munk <[email protected]>: > [this is not another SSSE3 discussion thread] > > Qt on OMAP3 has very big benefits from using NEON, just like using > SSSE3 does on Atom. However, we do not currently compile for NEON in > MeeGo for ARMv7 as not all ARMv7 has NEON (Marvell, Nvidia being > notable exceptions). > .. and even Marvell and Nvidia people are happy. Or not? Let me know > what you think. Just re-awakening this old thread. On IRC, we (thiago, me, others) just discussed that the fact that we have -mfpu=vfpv3 in our ARMv7 optimization flags in MeeGo. What many people don't realize (including myself) is that -mfpu=vfpv3 actually means VFPv3-D32, which means, use 32 64-bit FPU registers. Marvell Dove and Nvidia Tegra 2 is VFPv3-D16, which means our current ARMv7 port does not at all run on Marvell Dove or Nvidia Tegra 2 - it doesn't have the registers 17-32 which our code uses. This was one key argument against enabling NEON by default. In practice, if we switch to -mfpu=neon for ARMv7 softfp in 1.2, we are not losing any target possibilities (tegra2, dove) -- we lost them already at mfpu=vfpv3. Unless there's a target I've forgotten that does vfpv3-d32 and not NEON, I see no reason why we can't just set -mfpu=neon for 1.2. At least [1] doesn't list any. For hardfp there could be a small discussion if we'd use vfpv3-d16 to include more target possibilities, but for softfp we might as well move ahead to mfpu=neon. BR Carsten Munk Nokia N900 hardware adaptation maintainer [1] http://wiki.debian.org/ArmHardFloatPort/VfpComparison _______________________________________________ MeeGo-dev mailing list [email protected] http://lists.meego.com/listinfo/meego-dev _______________________________________________ MeeGo-dev mailing list [email protected] http://lists.meego.com/listinfo/meego-dev
