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)
(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]"
)
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0:
/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
/*
** psel_lane_p0_p2_p7_0: