]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
aarch64: Add command line support for armv9.5-a
authorAndrew Carlotti <andrew.carlotti@arm.com>
Fri, 10 Jan 2025 19:19:19 +0000 (19:19 +0000)
committerAndrew Carlotti <andrew.carlotti@arm.com>
Fri, 24 Jan 2025 19:09:10 +0000 (19:09 +0000)
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.

gcc/config/aarch64/aarch64-arches.def
gcc/doc/invoke.texi
gcc/testsuite/gcc.target/aarch64/simd/armv9p5.c [new file with mode: 0644]

index fd4881a8ebfbd3446e2995b9dcf1133918665be6..dacb7b6f37a3f381d93b88810ca7b61f9838dc7c 100644 (file)
@@ -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
index 2f5d60baadbee3e41ba96e48cf3f8caa14e07f38..819a684393423e53bcbb1462e5a323e3a33217b9 100644 (file)
@@ -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 (file)
index 0000000..6df47b8
--- /dev/null
@@ -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);
+}