On Wed, Jul 19, 2023 at 07:35:26PM +0100, Ramana Radhakrishnan wrote: > On Wed, Jul 19, 2023 at 5:44 PM Andrew Carlotti via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: > > > > Updated patch to fix the fp16 intrinsic pragmas, and pushed to master. > > OK to backport to GCC 13? > > > > > > Many intrinsics currently depend on both an architecture version and a > > feature, despite the corresponding instructions being available within > > GCC at lower architecture versions. > > > > LLVM has already removed these explicit architecture version > > dependences; this patch does the same for GCC. Note that +fp16 does not > > imply +simd, so we need to add an explicit +simd for the Neon fp16 > > intrinsics. > > > > Binutils did not previously support all of these architecture+feature > > combinations, but this problem is already reachable from GCC. For > > example, compiling the test gcc.target/aarch64/usadv16qi-dotprod.c > > with -O3 -march=armv8-a+dotprod has resulted in an assembler error since > > GCC 10. This is fixed in Binutils 2.41. > > Are there any implementations that actually implement v8-a + dotprod > ?. As far as I'm aware this was v8.2-A as the base architecture where > this was allowed. Has this changed recently? > > > regards > Ramana
I don't recall whether there are any physical implementations of DotProd without Armv8.2, but similar situations have already occurred with other features. There are also situations where developers wish to enable only a subset of available features. For example, the existing restrictions in GCC have forced Chromium to disable their memtag support when building with GCC [1]; with this patch, they will be able to reenable memtag support from GCC 14 (and GCC 13.x when this is backported). I don't see any advantages to trying to enforce minimum architecture versions for features in GCC, except perhaps maintaining the status quo. But the status quo is already rather inconsistent, and these changes only make GCC more permissive (and only for options that currently don't work). [1] https://chromium-review.googlesource.com/c/chromium/src/+/3238466