aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2024-11-07 20:34:49 +0000
committerRichard Sandiford <richard.sandiford@arm.com>2024-11-07 20:34:49 +0000
commitafd3887262edbdd5d7be5f34658432fd3046a168 (patch)
tree55ba5152e078587feef9f0117a0df2c8290940bc
parentf5962839d6e0c3115931e68d938d9a0cd7a383b1 (diff)
downloadgcc-afd3887262edbdd5d7be5f34658432fd3046a168.zip
gcc-afd3887262edbdd5d7be5f34658432fd3046a168.tar.gz
gcc-afd3887262edbdd5d7be5f34658432fd3046a168.tar.bz2
aarch64: Make PSEL dependent on SME rather than SME2
The svpsel_lane intrinsics were wrongly classified as SME2+ only, rather than as base SME intrinsics. They should always be available in streaming mode. gcc/ * config/aarch64/aarch64-sve2.md (@aarch64_sve_psel<BHSD_BITS>) (*aarch64_sve_psel<BHSD_BITS>_plus): Require TARGET_STREAMING rather than TARGET_STREAMING_SME2. gcc/testsuite/ * gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c: Move to... * gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c: ...here. * gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c: Move to... * gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c: ...here. * gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c: Move to... * gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c: ...here. * gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c: Move to... * gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c: ...here. * gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c: Move to... * gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c: ...here. * gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c: Move to... * gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c: ...here. * gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c: Move to... * gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c: ...here. * gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c: Move to... * gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c: ...here.
-rw-r--r--gcc/config/aarch64/aarch64-sve2.md4
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c (renamed from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c)2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c (renamed from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c)2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c (renamed from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c)2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c (renamed from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c)2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c (renamed from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c)2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c (renamed from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c)2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c (renamed from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c)2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c (renamed from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c)2
9 files changed, 10 insertions, 10 deletions
diff --git a/gcc/config/aarch64/aarch64-sve2.md b/gcc/config/aarch64/aarch64-sve2.md
index 08f83fc..ac27124 100644
--- a/gcc/config/aarch64/aarch64-sve2.md
+++ b/gcc/config/aarch64/aarch64-sve2.md
@@ -418,7 +418,7 @@
(match_operand:SI 3 "register_operand" "Ucj")
(const_int BHSD_BITS)]
UNSPEC_PSEL))]
- "TARGET_STREAMING_SME2"
+ "TARGET_STREAMING"
"psel\t%0, %1, %2.<bits_etype>[%w3, 0]"
)
@@ -432,7 +432,7 @@
(match_operand:SI 4 "const_int_operand"))
(const_int BHSD_BITS)]
UNSPEC_PSEL))]
- "TARGET_STREAMING_SME2
+ "TARGET_STREAMING
&& UINTVAL (operands[4]) < 128 / <BHSD_BITS>"
"psel\t%0, %1, %2.<bits_etype>[%w3, %4]"
)
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c
index 704e9e3..45dda80 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c
@@ -1,6 +1,6 @@
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c
index 7d9c7a1..d3d1b7b 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c
@@ -1,6 +1,6 @@
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c
index a59032a..8c1e014 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c
@@ -1,6 +1,6 @@
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c
index 0dea85c..aadfd35 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c
@@ -1,6 +1,6 @@
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c
index 039c72b..68c875e 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c
@@ -1,6 +1,6 @@
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c
index eaf195d..af044fb 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c
@@ -1,6 +1,6 @@
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c
index 70cfeca..9113369 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c
@@ -1,6 +1,6 @@
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c
index b017962..31f95408 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c
@@ -1,6 +1,6 @@
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0: