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))
