https://gcc.gnu.org/g:27863590379bf0a87224f380b3b4e4b439cd73f5

commit r16-6377-g27863590379bf0a87224f380b3b4e4b439cd73f5
Author: Claudio Bantaloukas <[email protected]>
Date:   Wed Dec 24 11:41:25 2025 +0000

    aarch64: add tests for sme mfloat8 luti functions
    
    These functions could already support svmfloat8_t types but were missing 
tests.
    This change uses the similar ones for uint8.
    
    gcc/testsuite/
            * gcc.target/aarch64/sme2/acle-asm/luti2_mf8_x2.c: New test.
            * gcc.target/aarch64/sme2/acle-asm/luti2_mf8_x4.c: Likewise.
            * gcc.target/aarch64/sme2/acle-asm/luti2_mf8.c: Likewise.
            * gcc.target/aarch64/sme2/acle-asm/luti4_mf8_x2.c: Likewise.
            * gcc.target/aarch64/sme2/acle-asm/luti4_mf8.c: Likewise.

Diff:
---
 .../gcc.target/aarch64/sme2/acle-asm/luti2_mf8.c   | 48 +++++++++++++++++++
 .../aarch64/sme2/acle-asm/luti2_mf8_x2.c           | 50 +++++++++++++++++++
 .../aarch64/sme2/acle-asm/luti2_mf8_x4.c           | 56 ++++++++++++++++++++++
 .../gcc.target/aarch64/sme2/acle-asm/luti4_mf8.c   | 48 +++++++++++++++++++
 .../aarch64/sme2/acle-asm/luti4_mf8_x2.c           | 50 +++++++++++++++++++
 5 files changed, 252 insertions(+)

diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8.c 
b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8.c
new file mode 100644
index 000000000000..3cd830c385f1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8.c
@@ -0,0 +1,48 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** luti2_z1_z0_0:
+**     luti2   z1\.b, zt0, z0\[0\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z1_z0_0, svmfloat8_t, svuint8_t, z1,
+               svluti2_lane_zt_mf8 (0, z0, 0),
+               svluti2_lane_zt_mf8 (0, z0, 0))
+
+/*
+** luti2_z18_z5_15:
+**     luti2   z18\.b, zt0, z5\[15\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z18_z5_15, svmfloat8_t, svuint8_t, z18,
+               svluti2_lane_zt_mf8 (0, z5, 15),
+               svluti2_lane_zt_mf8 (0, z5, 15))
+
+/*
+** luti2_z24_z7_13:
+**     luti2   z24\.b, zt0, z7\[13\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z24_z7_13, svmfloat8_t, svuint8_t, z24,
+               svluti2_lane_zt_mf8 (0, z7, 13),
+               svluti2_lane_zt_mf8 (0, z7, 13))
+
+/*
+** luti2_z28_z16_11:
+**     luti2   z28\.b, zt0, z16\[11\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z28_z16_11, svmfloat8_t, svuint8_t, z28,
+               svluti2_lane_zt_mf8 (0, z16, 11),
+               svluti2_lane_zt_mf8 (0, z16, 11))
+
+/*
+** luti2_z24_z23_1:
+**     luti2   z24\.b, zt0, z23\[1\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z24_z23_1, svmfloat8_t, svuint8_t, z24,
+               svluti2_lane_zt_mf8 (0, z23, 1),
+               svluti2_lane_zt_mf8 (0, z23, 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8_x2.c 
b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8_x2.c
new file mode 100644
index 000000000000..bb299affdd3e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8_x2.c
@@ -0,0 +1,50 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** luti2_z1_z0_0:
+**     luti2   {[^\n]+}, zt0, z0\[0\]
+**     mov     [^\n]+
+**     mov     [^\n]+
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z1_z0_0, svmfloat8x2_t, svuint8_t, z1,
+               svluti2_lane_zt_mf8_x2 (0, z0, 0),
+               svluti2_lane_zt_mf8_x2 (0, z0, 0))
+
+/*
+** luti2_z18_z5_7:
+**     luti2   {z18\.b - z19\.b}, zt0, z5\[7\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z18_z5_7, svmfloat8x2_t, svuint8_t, z18,
+               svluti2_lane_zt_mf8_x2 (0, z5, 7),
+               svluti2_lane_zt_mf8_x2 (0, z5, 7))
+
+/*
+** luti2_z24_z7_6:
+**     luti2   {z24\.b - z25\.b}, zt0, z7\[6\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z24_z7_6, svmfloat8x2_t, svuint8_t, z24,
+               svluti2_lane_zt_mf8_x2 (0, z7, 6),
+               svluti2_lane_zt_mf8_x2 (0, z7, 6))
+
+/*
+** luti2_z28_z16_3:
+**     luti2   {z28\.b - z29\.b}, zt0, z16\[3\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z28_z16_3, svmfloat8x2_t, svuint8_t, z28,
+               svluti2_lane_zt_mf8_x2 (0, z16, 3),
+               svluti2_lane_zt_mf8_x2 (0, z16, 3))
+
+/*
+** luti2_z24_z23_1:
+**     luti2   {z24\.b - z25\.b}, zt0, z23\[1\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z24_z23_1, svmfloat8x2_t, svuint8_t, z24,
+               svluti2_lane_zt_mf8_x2 (0, z23, 1),
+               svluti2_lane_zt_mf8_x2 (0, z23, 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8_x4.c 
b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8_x4.c
new file mode 100644
index 000000000000..a9cefbc14d90
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8_x4.c
@@ -0,0 +1,56 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** luti2_z1_z0_0:
+**     luti2   {[^\n]+}, zt0, z0\[0\]
+**     mov     [^\n]+
+**     mov     [^\n]+
+**     mov     [^\n]+
+**     mov     [^\n]+
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z1_z0_0, svmfloat8x4_t, svuint8_t, z1,
+               svluti2_lane_zt_mf8_x4 (0, z0, 0),
+               svluti2_lane_zt_mf8_x4 (0, z0, 0))
+
+/*
+** luti2_z18_z5_3:
+**     luti2   {[^\n]+}, zt0, z5\[3\]
+**     mov     [^\n]+
+**     mov     [^\n]+
+**     mov     [^\n]+
+**     mov     [^\n]+
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z18_z5_3, svmfloat8x4_t, svuint8_t, z18,
+               svluti2_lane_zt_mf8_x4 (0, z5, 3),
+               svluti2_lane_zt_mf8_x4 (0, z5, 3))
+
+/*
+** luti2_z24_z7_2:
+**     luti2   {z24\.b - z27\.b}, zt0, z7\[2\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z24_z7_2, svmfloat8x4_t, svuint8_t, z24,
+               svluti2_lane_zt_mf8_x4 (0, z7, 2),
+               svluti2_lane_zt_mf8_x4 (0, z7, 2))
+
+/*
+** luti2_z28_z16_1:
+**     luti2   {z28\.b - z31\.b}, zt0, z16\[1\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z28_z16_1, svmfloat8x4_t, svuint8_t, z28,
+               svluti2_lane_zt_mf8_x4 (0, z16, 1),
+               svluti2_lane_zt_mf8_x4 (0, z16, 1))
+
+/*
+** luti2_z24_z23_0:
+**     luti2   {z24\.b - z27\.b}, zt0, z23\[0\]
+**     ret
+*/
+TEST_XN_SINGLE (luti2_z24_z23_0, svmfloat8x4_t, svuint8_t, z24,
+               svluti2_lane_zt_mf8_x4 (0, z23, 0),
+               svluti2_lane_zt_mf8_x4 (0, z23, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_mf8.c 
b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_mf8.c
new file mode 100644
index 000000000000..1ca04b338ebe
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_mf8.c
@@ -0,0 +1,48 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** luti4_z1_z0_0:
+**     luti4   z1\.b, zt0, z0\[0\]
+**     ret
+*/
+TEST_XN_SINGLE (luti4_z1_z0_0, svmfloat8_t, svuint8_t, z1,
+               svluti4_lane_zt_mf8 (0, z0, 0),
+               svluti4_lane_zt_mf8 (0, z0, 0))
+
+/*
+** luti4_z18_z5_7:
+**     luti4   z18\.b, zt0, z5\[7\]
+**     ret
+*/
+TEST_XN_SINGLE (luti4_z18_z5_7, svmfloat8_t, svuint8_t, z18,
+               svluti4_lane_zt_mf8 (0, z5, 7),
+               svluti4_lane_zt_mf8 (0, z5, 7))
+
+/*
+** luti4_z24_z7_6:
+**     luti4   z24\.b, zt0, z7\[6\]
+**     ret
+*/
+TEST_XN_SINGLE (luti4_z24_z7_6, svmfloat8_t, svuint8_t, z24,
+               svluti4_lane_zt_mf8 (0, z7, 6),
+               svluti4_lane_zt_mf8 (0, z7, 6))
+
+/*
+** luti4_z28_z16_4:
+**     luti4   z28\.b, zt0, z16\[4\]
+**     ret
+*/
+TEST_XN_SINGLE (luti4_z28_z16_4, svmfloat8_t, svuint8_t, z28,
+               svluti4_lane_zt_mf8 (0, z16, 4),
+               svluti4_lane_zt_mf8 (0, z16, 4))
+
+/*
+** luti4_z24_z23_1:
+**     luti4   z24\.b, zt0, z23\[1\]
+**     ret
+*/
+TEST_XN_SINGLE (luti4_z24_z23_1, svmfloat8_t, svuint8_t, z24,
+               svluti4_lane_zt_mf8 (0, z23, 1),
+               svluti4_lane_zt_mf8 (0, z23, 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_mf8_x2.c 
b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_mf8_x2.c
new file mode 100644
index 000000000000..1e3516ed340b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_mf8_x2.c
@@ -0,0 +1,50 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** luti4_z1_z0_0:
+**     luti4   {[^\n]+}, zt0, z0\[0\]
+**     mov     [^\n]+
+**     mov     [^\n]+
+**     ret
+*/
+TEST_XN_SINGLE (luti4_z1_z0_0, svmfloat8x2_t, svuint8_t, z1,
+               svluti4_lane_zt_mf8_x2 (0, z0, 0),
+               svluti4_lane_zt_mf8_x2 (0, z0, 0))
+
+/*
+** luti4_z18_z5_3:
+**     luti4   {z18\.b - z19\.b}, zt0, z5\[3\]
+**     ret
+*/
+TEST_XN_SINGLE (luti4_z18_z5_3, svmfloat8x2_t, svuint8_t, z18,
+               svluti4_lane_zt_mf8_x2 (0, z5, 3),
+               svluti4_lane_zt_mf8_x2 (0, z5, 3))
+
+/*
+** luti4_z24_z7_2:
+**     luti4   {z24\.b - z25\.b}, zt0, z7\[2\]
+**     ret
+*/
+TEST_XN_SINGLE (luti4_z24_z7_2, svmfloat8x2_t, svuint8_t, z24,
+               svluti4_lane_zt_mf8_x2 (0, z7, 2),
+               svluti4_lane_zt_mf8_x2 (0, z7, 2))
+
+/*
+** luti4_z28_z16_1:
+**     luti4   {z28\.b - z29\.b}, zt0, z16\[1\]
+**     ret
+*/
+TEST_XN_SINGLE (luti4_z28_z16_1, svmfloat8x2_t, svuint8_t, z28,
+               svluti4_lane_zt_mf8_x2 (0, z16, 1),
+               svluti4_lane_zt_mf8_x2 (0, z16, 1))
+
+/*
+** luti4_z24_z23_0:
+**     luti4   {z24\.b - z25\.b}, zt0, z23\[0\]
+**     ret
+*/
+TEST_XN_SINGLE (luti4_z24_z23_0, svmfloat8x2_t, svuint8_t, z24,
+               svluti4_lane_zt_mf8_x2 (0, z23, 0),
+               svluti4_lane_zt_mf8_x2 (0, z23, 0))

Reply via email to