By: Doug S (foo.delete@this.bar.bar), May 23, 2022 8:08 am
Room: Moderated Discussions
-.- (blarg.delete@this.mailinator.com) on May 23, 2022 4:23 am wrote:
> Doug S (foo.delete@this.bar.bar) on May 22, 2022 10:57 am wrote:
> > I would assume the first step in deprecating NEON (if that was the plan) would
> > be to require SVE2 or some successor spec. SVE2 remains optional in ARMv9.
>
> On GCC and Clang,
> it sounds like SVE2 is as "optional" on ARMv9 as NEON is "optional" on ARMv8. (i.e. "opt-out optional")
>
> ARM have been less afraid to drop support for old ISAs/extensions (like AArch32), unlike x86. Given NEON's
> prevalence, it'll likely stay around for quite some time, and given the markets ARM is now in (or entering
> into), they probably can't drop backwards compatibility as much as they used to. But SVE was designed with
> no reliance on NEON, so it's possible the latter will slowly be phased out over many years.
I don't know why they've chosen to do that, but according to the latest ARMv9 documentation (which covers through ARMv9.3) FEAT_SVE2 is still listed as optional for ARMv9. AFAIK, NEON is required and not something you can opt out on - if you have a link to some documentation from ARM showing otherwise I'd be interested to see it.
See page B.1.1.2 on page 26: https://developer.arm.com/documentation/ddi0608/latest
It also notes "Although FEAT_SVE2 is OPTIONAL, standard Armv9-A software platforms support FEAT_SVE2" which I guess refers to the ARMv9 cores ARM has designed so far. If Apple releases an ARMv9 core that does not include SVE2, gcc & clang will have to change that default.
> Doug S (foo.delete@this.bar.bar) on May 22, 2022 10:57 am wrote:
> > I would assume the first step in deprecating NEON (if that was the plan) would
> > be to require SVE2 or some successor spec. SVE2 remains optional in ARMv9.
>
> On GCC and Clang,
-march=armv9-a
is an alias for -march=armv8.5-a+sve2
, so assuming they're correct, > it sounds like SVE2 is as "optional" on ARMv9 as NEON is "optional" on ARMv8. (i.e. "opt-out optional")
>
> ARM have been less afraid to drop support for old ISAs/extensions (like AArch32), unlike x86. Given NEON's
> prevalence, it'll likely stay around for quite some time, and given the markets ARM is now in (or entering
> into), they probably can't drop backwards compatibility as much as they used to. But SVE was designed with
> no reliance on NEON, so it's possible the latter will slowly be phased out over many years.
I don't know why they've chosen to do that, but according to the latest ARMv9 documentation (which covers through ARMv9.3) FEAT_SVE2 is still listed as optional for ARMv9. AFAIK, NEON is required and not something you can opt out on - if you have a link to some documentation from ARM showing otherwise I'd be interested to see it.
See page B.1.1.2 on page 26: https://developer.arm.com/documentation/ddi0608/latest
It also notes "Although FEAT_SVE2 is OPTIONAL, standard Armv9-A software platforms support FEAT_SVE2" which I guess refers to the ARMv9 cores ARM has designed so far. If Apple releases an ARMv9 core that does not include SVE2, gcc & clang will have to change that default.