On Sun, 28 May 2023, Rémi Denis-Courmont wrote:
Le sunnuntaina 28. toukokuuta 2023, 0.34.15 EEST Martin Storsjö a écrit :
I guess the alternative would be to just try to set .arch
<highest-supported-that-we-care-about>. I was worried that support for
e.g. armv8.6-a appeared later in toolchains than support for the
individual extension i8mm, but at least from a quick browse in binutils
history, they seem to have been added at the same time, so there's
probably no such drawback.
Or what's the situation with e.g. SVE2 - was ".arch_extension sve2"
supported significantly earlier than ".arch armv9-a"?
I have not tested SVE on LLVM. AFAIK, SVE and SVE2 are optional from 8.2 and
9.0 onward respectively, and not mandatory in any version, so if your
toolchain supports neither .arch with plus sign, nor .arch_extension, it is
game over.
I didn't meant specifically whether LLVM supports it here, just in general
wrt binutils and how to enable the feature.
FWIW it seems like SVE2 is a mandatory part of 9.0 - assembling SVE2
instructions can be done with ".arch armv9-a". But there are about 2 years
worth of deployed binutils based toolchains that do recognize ".arch
armv8.2-a; .arch_extension sve2" but don't recognize ".arch armv9-a".
So for the generic mechanism for enabling cpu features, I'd prefer to keep
the mechanism using primarily .arch_extension (with .arch set as high as
necessary) rather than relying solely on .arch <version> without any extra
+<feature>.
If we'd do that, it does simplify the configure logic a fair bit and
reduces the number of configure variables we need by a lot. It does enable
a few more instruction set extensions than what we need though, but that's
probably not a real issue.
Yes.
I made an attempt at simplifying the logic in configure and asm.S
somewhat, while still primarily using .arch_extension, and while making
sure we still can get the features assembled with current Clang with a
high enough -march= setting. (Runtime enabled features are out of scope
for Clang for now as we don't want to try to pass individual higher
-march= options to the individual assembly files.)
// Martin
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".