]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
aarch64: Make PSEL dependent on SME rather than SME2
authorRichard Sandiford <richard.sandiford@arm.com>
Fri, 8 Nov 2024 14:07:47 +0000 (14:07 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Fri, 8 Nov 2024 14:07:47 +0000 (14:07 +0000)
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.

(cherry picked from commit afd3887262edbdd5d7be5f34658432fd3046a168)

gcc/config/aarch64/aarch64-sve2.md
gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c [moved from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c with 98% similarity]
gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c [moved from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c with 98% similarity]
gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c [moved from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c with 98% similarity]
gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c [moved from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c with 98% similarity]
gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c [moved from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c with 98% similarity]
gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c [moved from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c with 98% similarity]
gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c [moved from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c with 98% similarity]
gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c [moved from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c with 98% similarity]

index bae153b2c8c3af229a6d05407276d6604d6b4e70..b0bdce1b0c4560f7de89a2feed3dbce8a99fc24a 100644 (file)
           (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]"
 )
 
             (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]"
 )
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c
index 704e9e375f5e60a4476868b4f076a2ef18b65250..45dda808d2a60927cd50b47993f6ebd692bcbb21 100644 (file)
@@ -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:
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c
index 7d9c7a129ea4469201957d5ac9e75f9d5b7cf116..d3d1b7b42cac796cf1b447d25943e20f1b36b273 100644 (file)
@@ -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:
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c
index a59032a57f61b7698cc2deff9e59064b652bf27e..8c1e014db650e404b517d0acf1994dc10c51c975 100644 (file)
@@ -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:
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c
index 0dea85c4f1f91385902fffa815b222b2969f1d3c..aadfd3515addf472c539bc4526915a4affe439ad 100644 (file)
@@ -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:
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c
index 039c72b83c8dafb621686875eafed773dec87d33..68c875eccf5cfef92c84fc7c866e5d235af6f8be 100644 (file)
@@ -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:
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c
index eaf195d93d2f9173c98f50a1d1dfb52499a2323f..af044fb34eca766dfb4bd3136f1e4fe5214223e2 100644 (file)
@@ -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:
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c
index 70cfeca4fc82c88f4358e2d08e24b84dda8b6dba..911336900b77c36859044f7a9a754b002594ed0b 100644 (file)
@@ -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:
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c
index b017962629f1c182d395209088835a0d78fd209d..31f95408a67a35aba2966a9b3b2c90ffa682f47b 100644 (file)
@@ -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: