From: Andrew Carlotti Date: Fri, 10 Jan 2025 19:19:19 +0000 (+0000) Subject: aarch64: Add command line support for armv9.5-a X-Git-Tag: basepoints/gcc-16~2356 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c7847680cf18aaa26d607de5b3678c50470b9e87;p=thirdparty%2Fgcc.git aarch64: Add command line support for armv9.5-a gcc/ChangeLog: * config/aarch64/aarch64-arches.def (V9_5A): New. * doc/invoke.texi: Document armv9.5-a option. gcc/testsuite/ChangeLog: * gcc.target/aarch64/simd/armv9p5.c: New test. --- diff --git a/gcc/config/aarch64/aarch64-arches.def b/gcc/config/aarch64/aarch64-arches.def index fd4881a8ebf..dacb7b6f37a 100644 --- a/gcc/config/aarch64/aarch64-arches.def +++ b/gcc/config/aarch64/aarch64-arches.def @@ -46,5 +46,6 @@ AARCH64_ARCH("armv9.1-a", generic_armv9_a, V9_1A, 9, (V8_6A, V9A)) AARCH64_ARCH("armv9.2-a", generic_armv9_a, V9_2A, 9, (V8_7A, V9_1A)) AARCH64_ARCH("armv9.3-a", generic_armv9_a, V9_3A, 9, (V8_8A, V9_2A)) AARCH64_ARCH("armv9.4-a", generic_armv9_a, V9_4A, 9, (V8_9A, V9_3A)) +AARCH64_ARCH("armv9.5-a", generic_armv9_a, V9_5A, 9, (V9_4A, FAMINMAX, LUT)) #undef AARCH64_ARCH diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 2f5d60baadb..819a6843934 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -21672,6 +21672,7 @@ and the features that they enable by default: @item @samp{armv9.2-a} @tab Armv9.2-A @tab @samp{armv9.1-a} @item @samp{armv9.3-a} @tab Armv9.3-A @tab @samp{armv9.2-a}, @samp{+mops} @item @samp{armv9.4-a} @tab Armv9.4-A @tab @samp{armv9.3-a} +@item @samp{armv9.5-a} @tab Armv9.4-A @tab @samp{armv9.4-a}, @samp{+faminmax}, @samp{+lut} @item @samp{armv8-r} @tab Armv8-R @tab @samp{armv8-r} @end multitable diff --git a/gcc/testsuite/gcc.target/aarch64/simd/armv9p5.c b/gcc/testsuite/gcc.target/aarch64/simd/armv9p5.c new file mode 100644 index 00000000000..6df47b8de1c --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/simd/armv9p5.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv9.5-a" } */ + +#include "arm_neon.h" + +int8x16_t foo (int8x16_t table, uint8x16_t indicies) +{ + return vluti2q_laneq_s8 (table, indicies, 1); +} + +float32x4_t bar (float32x4_t a, float32x4_t b) +{ + return vaminq_f32 (a, b); +}