}
};
-class svpsel_impl : public function_base
+class svpsel_lane_impl : public function_base
{
public:
rtx
FUNCTION (svpmullb_pair, unspec_based_function, (-1, UNSPEC_PMULLB_PAIR, -1))
FUNCTION (svpmullt, unspec_based_function, (-1, UNSPEC_PMULLT, -1))
FUNCTION (svpmullt_pair, unspec_based_function, (-1, UNSPEC_PMULLT_PAIR, -1))
-FUNCTION (svpsel, svpsel_impl,)
+FUNCTION (svpsel_lane, svpsel_lane_impl,)
FUNCTION (svqabs, rtx_code_function, (SS_ABS, UNKNOWN, UNKNOWN))
FUNCTION (svqcadd, svqcadd_impl,)
FUNCTION (svqcvt, integer_conversion, (UNSPEC_SQCVT, UNSPEC_SQCVTU,
| AARCH64_FL_SME \
| AARCH64_FL_SM_ON)
DEF_SVE_FUNCTION (svclamp, clamp, all_integer, none)
-DEF_SVE_FUNCTION (svpsel, select_pred, all_pred_count, none)
+DEF_SVE_FUNCTION (svpsel_lane, select_pred, all_pred_count, none)
DEF_SVE_FUNCTION (svrevd, unary, all_data, mxz)
#undef REQUIRED_EXTENSIONS
extern const function_base *const svpmullb_pair;
extern const function_base *const svpmullt;
extern const function_base *const svpmullt_pair;
- extern const function_base *const svpsel;
+ extern const function_base *const svpsel_lane;
extern const function_base *const svqabs;
extern const function_base *const svqcadd;
extern const function_base *const svqcvt;
+++ /dev/null
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-** mov [wx](1[2-5]), #?0
-** psel p0, p2, p7\.h\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svbool_t,
- p0 = svpsel_b16 (p2, p7, 0),
- p0 = svpsel_b16 (p2, p7, 0))
-
-/*
-** psel_p2_p7_p8_w11:
-** mov [wx](1[2-5]), [wx]11
-** psel p2, p7, p8\.h\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p7_p8_w11, svbool_t,
- p2 = svpsel_b16 (p7, p8, w11),
- p2 = svpsel_b16 (p7, p8, w11))
-
-/*
-** psel_p7_p8_p13_w12:
-** psel p7, p8, p13\.h\[w12, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p7_p8_p13_w12, svbool_t,
- p7 = svpsel_b16 (p8, p13, w12),
- p7 = svpsel_b16 (p8, p13, w12))
-
-/*
-** psel_p8_p13_p15_w15:
-** psel p8, p13, p15\.h\[w15, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p8_p13_p15_w15, svbool_t,
- p8 = svpsel_b16 (p13, p15, w15),
- p8 = svpsel_b16 (p13, p15, w15))
-
-/*
-** psel_p13_p15_p0_w16:
-** mov [wx](1[2-5]), [wx]16
-** psel p13, p15, p0\.h\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p15_p0_w16, svbool_t,
- p13 = svpsel_b16 (p15, p0, w16),
- p13 = svpsel_b16 (p15, p0, w16))
-
-/*
-** psel_p15_p13_p8_w12p1:
-** psel p15, p13, p8\.h\[w12, 1\]
-** ret
-*/
-TEST_SELECT_P (psel_p15_p13_p8_w12p1, svbool_t,
- p15 = svpsel_b16 (p13, p8, w12 + 1),
- p15 = svpsel_b16 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p8_p7_w12p7:
-** psel p13, p8, p7\.h\[w12, 7\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p8_p7_w12p7, svbool_t,
- p13 = svpsel_b16 (p8, p7, w12 + 7),
- p13 = svpsel_b16 (p8, p7, w12 + 7))
-
-/*
-** psel_p0_p0_p0_w12p8:
-** add (w[0-9]+), w12, #?8
-** psel p0, p0, p0\.h\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p0_p0_w12p8, svbool_t,
- p0 = svpsel_b16 (p0, p0, w12 + 8),
- p0 = svpsel_b16 (p0, p0, w12 + 8))
-
-/*
-** psel_p15_p15_p15_w12m1:
-** sub (w[0-9]+), w12, #?1
-** psel p15, p15, p15\.h\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p15_p15_p15_w12m1, svbool_t,
- p15 = svpsel_b16 (p15, p15, w12 - 1),
- p15 = svpsel_b16 (p15, p15, w12 - 1))
+++ /dev/null
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-** mov [wx](1[2-5]), #?0
-** psel p0, p2, p7\.s\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svbool_t,
- p0 = svpsel_b32 (p2, p7, 0),
- p0 = svpsel_b32 (p2, p7, 0))
-
-/*
-** psel_p2_p7_p8_w11:
-** mov [wx](1[2-5]), [wx]11
-** psel p2, p7, p8\.s\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p7_p8_w11, svbool_t,
- p2 = svpsel_b32 (p7, p8, w11),
- p2 = svpsel_b32 (p7, p8, w11))
-
-/*
-** psel_p7_p8_p13_w12:
-** psel p7, p8, p13\.s\[w12, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p7_p8_p13_w12, svbool_t,
- p7 = svpsel_b32 (p8, p13, w12),
- p7 = svpsel_b32 (p8, p13, w12))
-
-/*
-** psel_p8_p13_p15_w15:
-** psel p8, p13, p15\.s\[w15, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p8_p13_p15_w15, svbool_t,
- p8 = svpsel_b32 (p13, p15, w15),
- p8 = svpsel_b32 (p13, p15, w15))
-
-/*
-** psel_p13_p15_p0_w16:
-** mov [wx](1[2-5]), [wx]16
-** psel p13, p15, p0\.s\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p15_p0_w16, svbool_t,
- p13 = svpsel_b32 (p15, p0, w16),
- p13 = svpsel_b32 (p15, p0, w16))
-
-/*
-** psel_p15_p13_p8_w12p1:
-** psel p15, p13, p8\.s\[w12, 1\]
-** ret
-*/
-TEST_SELECT_P (psel_p15_p13_p8_w12p1, svbool_t,
- p15 = svpsel_b32 (p13, p8, w12 + 1),
- p15 = svpsel_b32 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p8_p7_w12p3:
-** psel p13, p8, p7\.s\[w12, 3\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p8_p7_w12p3, svbool_t,
- p13 = svpsel_b32 (p8, p7, w12 + 3),
- p13 = svpsel_b32 (p8, p7, w12 + 3))
-
-/*
-** psel_p0_p0_p0_w12p4:
-** add (w[0-9]+), w12, #?4
-** psel p0, p0, p0\.s\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p0_p0_w12p4, svbool_t,
- p0 = svpsel_b32 (p0, p0, w12 + 4),
- p0 = svpsel_b32 (p0, p0, w12 + 4))
-
-/*
-** psel_p15_p15_p15_w12m1:
-** sub (w[0-9]+), w12, #?1
-** psel p15, p15, p15\.s\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p15_p15_p15_w12m1, svbool_t,
- p15 = svpsel_b32 (p15, p15, w12 - 1),
- p15 = svpsel_b32 (p15, p15, w12 - 1))
+++ /dev/null
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-** mov [wx](1[2-5]), #?0
-** psel p0, p2, p7\.d\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svbool_t,
- p0 = svpsel_b64 (p2, p7, 0),
- p0 = svpsel_b64 (p2, p7, 0))
-
-/*
-** psel_p2_p7_p8_w11:
-** mov [wx](1[2-5]), [wx]11
-** psel p2, p7, p8\.d\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p7_p8_w11, svbool_t,
- p2 = svpsel_b64 (p7, p8, w11),
- p2 = svpsel_b64 (p7, p8, w11))
-
-/*
-** psel_p7_p8_p13_w12:
-** psel p7, p8, p13\.d\[w12, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p7_p8_p13_w12, svbool_t,
- p7 = svpsel_b64 (p8, p13, w12),
- p7 = svpsel_b64 (p8, p13, w12))
-
-/*
-** psel_p8_p13_p15_w15:
-** psel p8, p13, p15\.d\[w15, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p8_p13_p15_w15, svbool_t,
- p8 = svpsel_b64 (p13, p15, w15),
- p8 = svpsel_b64 (p13, p15, w15))
-
-/*
-** psel_p13_p15_p0_w16:
-** mov [wx](1[2-5]), [wx]16
-** psel p13, p15, p0\.d\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p15_p0_w16, svbool_t,
- p13 = svpsel_b64 (p15, p0, w16),
- p13 = svpsel_b64 (p15, p0, w16))
-
-/*
-** psel_p15_p13_p8_w12p1:
-** psel p15, p13, p8\.d\[w12, 1\]
-** ret
-*/
-TEST_SELECT_P (psel_p15_p13_p8_w12p1, svbool_t,
- p15 = svpsel_b64 (p13, p8, w12 + 1),
- p15 = svpsel_b64 (p13, p8, w12 + 1))
-
-/*
-** psel_p0_p0_p0_w12p2:
-** add (w[0-9]+), w12, #?2
-** psel p0, p0, p0\.d\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p0_p0_w12p2, svbool_t,
- p0 = svpsel_b64 (p0, p0, w12 + 2),
- p0 = svpsel_b64 (p0, p0, w12 + 2))
-
-/*
-** psel_p15_p15_p15_w12m1:
-** sub (w[0-9]+), w12, #?1
-** psel p15, p15, p15\.d\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p15_p15_p15_w12m1, svbool_t,
- p15 = svpsel_b64 (p15, p15, w12 - 1),
- p15 = svpsel_b64 (p15, p15, w12 - 1))
+++ /dev/null
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-** mov [wx](1[2-5]), #?0
-** psel p0, p2, p7\.b\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svbool_t,
- p0 = svpsel_b8 (p2, p7, 0),
- p0 = svpsel_b8 (p2, p7, 0))
-
-/*
-** psel_p2_p7_p8_w11:
-** mov [wx](1[2-5]), [wx]11
-** psel p2, p7, p8\.b\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p7_p8_w11, svbool_t,
- p2 = svpsel_b8 (p7, p8, w11),
- p2 = svpsel_b8 (p7, p8, w11))
-
-/*
-** psel_p7_p8_p13_w12:
-** psel p7, p8, p13\.b\[w12, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p7_p8_p13_w12, svbool_t,
- p7 = svpsel_b8 (p8, p13, w12),
- p7 = svpsel_b8 (p8, p13, w12))
-
-/*
-** psel_p8_p13_p15_w15:
-** psel p8, p13, p15\.b\[w15, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p8_p13_p15_w15, svbool_t,
- p8 = svpsel_b8 (p13, p15, w15),
- p8 = svpsel_b8 (p13, p15, w15))
-
-/*
-** psel_p13_p15_p0_w16:
-** mov [wx](1[2-5]), [wx]16
-** psel p13, p15, p0\.b\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p15_p0_w16, svbool_t,
- p13 = svpsel_b8 (p15, p0, w16),
- p13 = svpsel_b8 (p15, p0, w16))
-
-/*
-** psel_p15_p13_p8_w12p1:
-** psel p15, p13, p8\.b\[w12, 1\]
-** ret
-*/
-TEST_SELECT_P (psel_p15_p13_p8_w12p1, svbool_t,
- p15 = svpsel_b8 (p13, p8, w12 + 1),
- p15 = svpsel_b8 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p8_p7_w12p15:
-** psel p13, p8, p7\.b\[w12, 15\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p8_p7_w12p15, svbool_t,
- p13 = svpsel_b8 (p8, p7, w12 + 15),
- p13 = svpsel_b8 (p8, p7, w12 + 15))
-
-/*
-** psel_p0_p0_p0_w12p16:
-** add (w[0-9]+), w12, #?16
-** psel p0, p0, p0\.b\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p0_p0_w12p16, svbool_t,
- p0 = svpsel_b8 (p0, p0, w12 + 16),
- p0 = svpsel_b8 (p0, p0, w12 + 16))
-
-/*
-** psel_p15_p15_p15_w12m1:
-** sub (w[0-9]+), w12, #?1
-** psel p15, p15, p15\.b\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p15_p15_p15_w12m1, svbool_t,
- p15 = svpsel_b8 (p15, p15, w12 - 1),
- p15 = svpsel_b8 (p15, p15, w12 - 1))
+++ /dev/null
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-** mov [wx](1[2-5]), #?0
-** psel p0, p2, p7\.h\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svcount_t,
- p0 = svpsel_c16 (p2, p7, 0),
- p0 = svpsel_c16 (p2, p7, 0))
-
-/*
-** psel_p2_p0_p8_w11:
-** mov [wx](1[2-5]), [wx]11
-** psel p2, p0, p8\.h\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p0_p8_w11, svcount_t,
- p2 = svpsel_c16 (p0, p8, w11),
- p2 = svpsel_c16 (p0, p8, w11))
-
-/*
-** psel_p2_p13_p15_w12:
-** psel p2, p13, p15\.h\[w12, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p13_p15_w12, svcount_t,
- p2 = svpsel_c16 (p13, p15, w12),
- p2 = svpsel_c16 (p13, p15, w12))
-
-/*
-** psel_p0_p13_p15_w15:
-** psel p0, p13, p15\.h\[w15, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p13_p15_w15, svcount_t,
- p0 = svpsel_c16 (p13, p15, w15),
- p0 = svpsel_c16 (p13, p15, w15))
-
-/*
-** psel_p13_p0_p15_w16:
-** mov [wx](1[2-5]), [wx]16
-** psel p13, p0, p15\.h\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p0_p15_w16, svcount_t,
- p13 = svpsel_c16 (p0, p15, w16),
- p13 = svpsel_c16 (p0, p15, w16))
-
-/*
-** psel_p2_p13_p8_w12p1:
-** psel p2, p13, p8\.h\[w12, 1\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p13_p8_w12p1, svcount_t,
- p2 = svpsel_c16 (p13, p8, w12 + 1),
- p2 = svpsel_c16 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p0_p7_w12p7:
-** psel p13, p0, p7\.h\[w12, 7\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p0_p7_w12p7, svcount_t,
- p13 = svpsel_c16 (p0, p7, w12 + 7),
- p13 = svpsel_c16 (p0, p7, w12 + 7))
-
-/*
-** psel_p0_p0_p15_w12p8:
-** add (w[0-9]+), w12, #?8
-** psel p0, p0, p15\.h\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p0_p15_w12p8, svcount_t,
- p0 = svpsel_c16 (p0, p15, w12 + 8),
- p0 = svpsel_c16 (p0, p15, w12 + 8))
-
-/*
-** psel_p13_p13_p7_w12m1:
-** sub (w[0-9]+), w12, #?1
-** psel p13, p13, p7\.h\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p13_p7_w12m1, svcount_t,
- p13 = svpsel_c16 (p13, p7, w12 - 1),
- p13 = svpsel_c16 (p13, p7, w12 - 1))
+++ /dev/null
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-** mov [wx](1[2-5]), #?0
-** psel p0, p2, p7\.s\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svcount_t,
- p0 = svpsel_c32 (p2, p7, 0),
- p0 = svpsel_c32 (p2, p7, 0))
-
-/*
-** psel_p2_p13_p8_w11:
-** mov [wx](1[2-5]), [wx]11
-** psel p2, p13, p8\.s\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p13_p8_w11, svcount_t,
- p2 = svpsel_c32 (p13, p8, w11),
- p2 = svpsel_c32 (p13, p8, w11))
-
-/*
-** psel_p0_p13_p15_w12:
-** psel p0, p13, p15\.s\[w12, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p13_p15_w12, svcount_t,
- p0 = svpsel_c32 (p13, p15, w12),
- p0 = svpsel_c32 (p13, p15, w12))
-
-/*
-** psel_p2_p0_p15_w15:
-** psel p2, p0, p15\.s\[w15, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p0_p15_w15, svcount_t,
- p2 = svpsel_c32 (p0, p15, w15),
- p2 = svpsel_c32 (p0, p15, w15))
-
-/*
-** psel_p13_p0_p7_w16:
-** mov [wx](1[2-5]), [wx]16
-** psel p13, p0, p7\.s\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p0_p7_w16, svcount_t,
- p13 = svpsel_c32 (p0, p7, w16),
- p13 = svpsel_c32 (p0, p7, w16))
-
-/*
-** psel_p2_p13_p8_w12p1:
-** psel p2, p13, p8\.s\[w12, 1\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p13_p8_w12p1, svcount_t,
- p2 = svpsel_c32 (p13, p8, w12 + 1),
- p2 = svpsel_c32 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p0_p7_w12p3:
-** psel p13, p0, p7\.s\[w12, 3\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p0_p7_w12p3, svcount_t,
- p13 = svpsel_c32 (p0, p7, w12 + 3),
- p13 = svpsel_c32 (p0, p7, w12 + 3))
-
-/*
-** psel_p0_p0_p7_w12p4:
-** add (w[0-9]+), w12, #?4
-** psel p0, p0, p7\.s\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p0_p7_w12p4, svcount_t,
- p0 = svpsel_c32 (p0, p7, w12 + 4),
- p0 = svpsel_c32 (p0, p7, w12 + 4))
-
-/*
-** psel_p13_p13_p15_w12m1:
-** sub (w[0-9]+), w12, #?1
-** psel p13, p13, p15\.s\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p13_p15_w12m1, svcount_t,
- p13 = svpsel_c32 (p13, p15, w12 - 1),
- p13 = svpsel_c32 (p13, p15, w12 - 1))
+++ /dev/null
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-** mov [wx](1[2-5]), #?0
-** psel p0, p2, p7\.d\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svcount_t,
- p0 = svpsel_c64 (p2, p7, 0),
- p0 = svpsel_c64 (p2, p7, 0))
-
-/*
-** psel_p2_p13_p8_w11:
-** mov [wx](1[2-5]), [wx]11
-** psel p2, p13, p8\.d\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p13_p8_w11, svcount_t,
- p2 = svpsel_c64 (p13, p8, w11),
- p2 = svpsel_c64 (p13, p8, w11))
-
-/*
-** psel_p2_p0_p15_w12:
-** psel p2, p0, p15\.d\[w12, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p0_p15_w12, svcount_t,
- p2 = svpsel_c64 (p0, p15, w12),
- p2 = svpsel_c64 (p0, p15, w12))
-
-/*
-** psel_p0_p13_p15_w15:
-** psel p0, p13, p15\.d\[w15, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p13_p15_w15, svcount_t,
- p0 = svpsel_c64 (p13, p15, w15),
- p0 = svpsel_c64 (p13, p15, w15))
-
-/*
-** psel_p13_p0_p15_w16:
-** mov [wx](1[2-5]), [wx]16
-** psel p13, p0, p15\.d\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p0_p15_w16, svcount_t,
- p13 = svpsel_c64 (p0, p15, w16),
- p13 = svpsel_c64 (p0, p15, w16))
-
-/*
-** psel_p2_p13_p8_w12p1:
-** psel p2, p13, p8\.d\[w12, 1\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p13_p8_w12p1, svcount_t,
- p2 = svpsel_c64 (p13, p8, w12 + 1),
- p2 = svpsel_c64 (p13, p8, w12 + 1))
-
-/*
-** psel_p0_p0_p8_w12p2:
-** add (w[0-9]+), w12, #?2
-** psel p0, p0, p8\.d\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p0_p8_w12p2, svcount_t,
- p0 = svpsel_c64 (p0, p8, w12 + 2),
- p0 = svpsel_c64 (p0, p8, w12 + 2))
-
-/*
-** psel_p13_p13_p15_w12m1:
-** sub (w[0-9]+), w12, #?1
-** psel p13, p13, p15\.d\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p13_p15_w12m1, svcount_t,
- p13 = svpsel_c64 (p13, p15, w12 - 1),
- p13 = svpsel_c64 (p13, p15, w12 - 1))
+++ /dev/null
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-** mov [wx](1[2-5]), #?0
-** psel p0, p2, p7\.b\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svcount_t,
- p0 = svpsel_c8 (p2, p7, 0),
- p0 = svpsel_c8 (p2, p7, 0))
-
-/*
-** psel_p2_p0_p8_w11:
-** mov [wx](1[2-5]), [wx]11
-** psel p2, p0, p8\.b\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p0_p8_w11, svcount_t,
- p2 = svpsel_c8 (p0, p8, w11),
- p2 = svpsel_c8 (p0, p8, w11))
-
-/*
-** psel_p0_p13_p15_w12:
-** psel p0, p13, p15\.b\[w12, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p13_p15_w12, svcount_t,
- p0 = svpsel_c8 (p13, p15, w12),
- p0 = svpsel_c8 (p13, p15, w12))
-
-/*
-** psel_p13_p0_p8_w15:
-** psel p13, p0, p8\.b\[w15, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p0_p8_w15, svcount_t,
- p13 = svpsel_c8 (p0, p8, w15),
- p13 = svpsel_c8 (p0, p8, w15))
-
-/*
-** psel_p2_p13_p7_w16:
-** mov [wx](1[2-5]), [wx]16
-** psel p2, p13, p7\.b\[w\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p2_p13_p7_w16, svcount_t,
- p2 = svpsel_c8 (p13, p7, w16),
- p2 = svpsel_c8 (p13, p7, w16))
-
-/*
-** psel_p0_p13_p8_w12p1:
-** psel p0, p13, p8\.b\[w12, 1\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p13_p8_w12p1, svcount_t,
- p0 = svpsel_c8 (p13, p8, w12 + 1),
- p0 = svpsel_c8 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p2_p7_w12p15:
-** psel p13, p2, p7\.b\[w12, 15\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p2_p7_w12p15, svcount_t,
- p13 = svpsel_c8 (p2, p7, w12 + 15),
- p13 = svpsel_c8 (p2, p7, w12 + 15))
-
-/*
-** psel_p0_p0_p15_w12p16:
-** add (w[0-9]+), w12, #?16
-** psel p0, p0, p15\.b\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p0_p0_p15_w12p16, svcount_t,
- p0 = svpsel_c8 (p0, p15, w12 + 16),
- p0 = svpsel_c8 (p0, p15, w12 + 16))
-
-/*
-** psel_p13_p13_p15_w12m1:
-** sub (w[0-9]+), w12, #?1
-** psel p13, p13, p15\.b\[\1, 0\]
-** ret
-*/
-TEST_SELECT_P (psel_p13_p13_p15_w12m1, svcount_t,
- p13 = svpsel_c8 (p13, p15, w12 - 1),
- p13 = svpsel_c8 (p13, p15, w12 - 1))
--- /dev/null
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+** mov [wx](1[2-5]), #?0
+** psel p0, p2, p7\.h\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svbool_t,
+ p0 = svpsel_lane_b16 (p2, p7, 0),
+ p0 = svpsel_lane_b16 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p7_p8_w11:
+** mov [wx](1[2-5]), [wx]11
+** psel p2, p7, p8\.h\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p7_p8_w11, svbool_t,
+ p2 = svpsel_lane_b16 (p7, p8, w11),
+ p2 = svpsel_lane_b16 (p7, p8, w11))
+
+/*
+** psel_lane_p7_p8_p13_w12:
+** psel p7, p8, p13\.h\[w12, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p7_p8_p13_w12, svbool_t,
+ p7 = svpsel_lane_b16 (p8, p13, w12),
+ p7 = svpsel_lane_b16 (p8, p13, w12))
+
+/*
+** psel_lane_p8_p13_p15_w15:
+** psel p8, p13, p15\.h\[w15, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p8_p13_p15_w15, svbool_t,
+ p8 = svpsel_lane_b16 (p13, p15, w15),
+ p8 = svpsel_lane_b16 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p15_p0_w16:
+** mov [wx](1[2-5]), [wx]16
+** psel p13, p15, p0\.h\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p15_p0_w16, svbool_t,
+ p13 = svpsel_lane_b16 (p15, p0, w16),
+ p13 = svpsel_lane_b16 (p15, p0, w16))
+
+/*
+** psel_lane_p15_p13_p8_w12p1:
+** psel p15, p13, p8\.h\[w12, 1\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p15_p13_p8_w12p1, svbool_t,
+ p15 = svpsel_lane_b16 (p13, p8, w12 + 1),
+ p15 = svpsel_lane_b16 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p8_p7_w12p7:
+** psel p13, p8, p7\.h\[w12, 7\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p8_p7_w12p7, svbool_t,
+ p13 = svpsel_lane_b16 (p8, p7, w12 + 7),
+ p13 = svpsel_lane_b16 (p8, p7, w12 + 7))
+
+/*
+** psel_lane_p0_p0_p0_w12p8:
+** add (w[0-9]+), w12, #?8
+** psel p0, p0, p0\.h\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p0_w12p8, svbool_t,
+ p0 = svpsel_lane_b16 (p0, p0, w12 + 8),
+ p0 = svpsel_lane_b16 (p0, p0, w12 + 8))
+
+/*
+** psel_lane_p15_p15_p15_w12m1:
+** sub (w[0-9]+), w12, #?1
+** psel p15, p15, p15\.h\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p15_p15_p15_w12m1, svbool_t,
+ p15 = svpsel_lane_b16 (p15, p15, w12 - 1),
+ p15 = svpsel_lane_b16 (p15, p15, w12 - 1))
--- /dev/null
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+** mov [wx](1[2-5]), #?0
+** psel p0, p2, p7\.s\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svbool_t,
+ p0 = svpsel_lane_b32 (p2, p7, 0),
+ p0 = svpsel_lane_b32 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p7_p8_w11:
+** mov [wx](1[2-5]), [wx]11
+** psel p2, p7, p8\.s\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p7_p8_w11, svbool_t,
+ p2 = svpsel_lane_b32 (p7, p8, w11),
+ p2 = svpsel_lane_b32 (p7, p8, w11))
+
+/*
+** psel_lane_p7_p8_p13_w12:
+** psel p7, p8, p13\.s\[w12, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p7_p8_p13_w12, svbool_t,
+ p7 = svpsel_lane_b32 (p8, p13, w12),
+ p7 = svpsel_lane_b32 (p8, p13, w12))
+
+/*
+** psel_lane_p8_p13_p15_w15:
+** psel p8, p13, p15\.s\[w15, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p8_p13_p15_w15, svbool_t,
+ p8 = svpsel_lane_b32 (p13, p15, w15),
+ p8 = svpsel_lane_b32 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p15_p0_w16:
+** mov [wx](1[2-5]), [wx]16
+** psel p13, p15, p0\.s\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p15_p0_w16, svbool_t,
+ p13 = svpsel_lane_b32 (p15, p0, w16),
+ p13 = svpsel_lane_b32 (p15, p0, w16))
+
+/*
+** psel_lane_p15_p13_p8_w12p1:
+** psel p15, p13, p8\.s\[w12, 1\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p15_p13_p8_w12p1, svbool_t,
+ p15 = svpsel_lane_b32 (p13, p8, w12 + 1),
+ p15 = svpsel_lane_b32 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p8_p7_w12p3:
+** psel p13, p8, p7\.s\[w12, 3\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p8_p7_w12p3, svbool_t,
+ p13 = svpsel_lane_b32 (p8, p7, w12 + 3),
+ p13 = svpsel_lane_b32 (p8, p7, w12 + 3))
+
+/*
+** psel_lane_p0_p0_p0_w12p4:
+** add (w[0-9]+), w12, #?4
+** psel p0, p0, p0\.s\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p0_w12p4, svbool_t,
+ p0 = svpsel_lane_b32 (p0, p0, w12 + 4),
+ p0 = svpsel_lane_b32 (p0, p0, w12 + 4))
+
+/*
+** psel_lane_p15_p15_p15_w12m1:
+** sub (w[0-9]+), w12, #?1
+** psel p15, p15, p15\.s\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p15_p15_p15_w12m1, svbool_t,
+ p15 = svpsel_lane_b32 (p15, p15, w12 - 1),
+ p15 = svpsel_lane_b32 (p15, p15, w12 - 1))
--- /dev/null
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+** mov [wx](1[2-5]), #?0
+** psel p0, p2, p7\.d\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svbool_t,
+ p0 = svpsel_lane_b64 (p2, p7, 0),
+ p0 = svpsel_lane_b64 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p7_p8_w11:
+** mov [wx](1[2-5]), [wx]11
+** psel p2, p7, p8\.d\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p7_p8_w11, svbool_t,
+ p2 = svpsel_lane_b64 (p7, p8, w11),
+ p2 = svpsel_lane_b64 (p7, p8, w11))
+
+/*
+** psel_lane_p7_p8_p13_w12:
+** psel p7, p8, p13\.d\[w12, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p7_p8_p13_w12, svbool_t,
+ p7 = svpsel_lane_b64 (p8, p13, w12),
+ p7 = svpsel_lane_b64 (p8, p13, w12))
+
+/*
+** psel_lane_p8_p13_p15_w15:
+** psel p8, p13, p15\.d\[w15, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p8_p13_p15_w15, svbool_t,
+ p8 = svpsel_lane_b64 (p13, p15, w15),
+ p8 = svpsel_lane_b64 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p15_p0_w16:
+** mov [wx](1[2-5]), [wx]16
+** psel p13, p15, p0\.d\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p15_p0_w16, svbool_t,
+ p13 = svpsel_lane_b64 (p15, p0, w16),
+ p13 = svpsel_lane_b64 (p15, p0, w16))
+
+/*
+** psel_lane_p15_p13_p8_w12p1:
+** psel p15, p13, p8\.d\[w12, 1\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p15_p13_p8_w12p1, svbool_t,
+ p15 = svpsel_lane_b64 (p13, p8, w12 + 1),
+ p15 = svpsel_lane_b64 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p0_p0_p0_w12p2:
+** add (w[0-9]+), w12, #?2
+** psel p0, p0, p0\.d\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p0_w12p2, svbool_t,
+ p0 = svpsel_lane_b64 (p0, p0, w12 + 2),
+ p0 = svpsel_lane_b64 (p0, p0, w12 + 2))
+
+/*
+** psel_lane_p15_p15_p15_w12m1:
+** sub (w[0-9]+), w12, #?1
+** psel p15, p15, p15\.d\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p15_p15_p15_w12m1, svbool_t,
+ p15 = svpsel_lane_b64 (p15, p15, w12 - 1),
+ p15 = svpsel_lane_b64 (p15, p15, w12 - 1))
--- /dev/null
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+** mov [wx](1[2-5]), #?0
+** psel p0, p2, p7\.b\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svbool_t,
+ p0 = svpsel_lane_b8 (p2, p7, 0),
+ p0 = svpsel_lane_b8 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p7_p8_w11:
+** mov [wx](1[2-5]), [wx]11
+** psel p2, p7, p8\.b\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p7_p8_w11, svbool_t,
+ p2 = svpsel_lane_b8 (p7, p8, w11),
+ p2 = svpsel_lane_b8 (p7, p8, w11))
+
+/*
+** psel_lane_p7_p8_p13_w12:
+** psel p7, p8, p13\.b\[w12, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p7_p8_p13_w12, svbool_t,
+ p7 = svpsel_lane_b8 (p8, p13, w12),
+ p7 = svpsel_lane_b8 (p8, p13, w12))
+
+/*
+** psel_lane_p8_p13_p15_w15:
+** psel p8, p13, p15\.b\[w15, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p8_p13_p15_w15, svbool_t,
+ p8 = svpsel_lane_b8 (p13, p15, w15),
+ p8 = svpsel_lane_b8 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p15_p0_w16:
+** mov [wx](1[2-5]), [wx]16
+** psel p13, p15, p0\.b\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p15_p0_w16, svbool_t,
+ p13 = svpsel_lane_b8 (p15, p0, w16),
+ p13 = svpsel_lane_b8 (p15, p0, w16))
+
+/*
+** psel_lane_p15_p13_p8_w12p1:
+** psel p15, p13, p8\.b\[w12, 1\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p15_p13_p8_w12p1, svbool_t,
+ p15 = svpsel_lane_b8 (p13, p8, w12 + 1),
+ p15 = svpsel_lane_b8 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p8_p7_w12p15:
+** psel p13, p8, p7\.b\[w12, 15\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p8_p7_w12p15, svbool_t,
+ p13 = svpsel_lane_b8 (p8, p7, w12 + 15),
+ p13 = svpsel_lane_b8 (p8, p7, w12 + 15))
+
+/*
+** psel_lane_p0_p0_p0_w12p16:
+** add (w[0-9]+), w12, #?16
+** psel p0, p0, p0\.b\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p0_w12p16, svbool_t,
+ p0 = svpsel_lane_b8 (p0, p0, w12 + 16),
+ p0 = svpsel_lane_b8 (p0, p0, w12 + 16))
+
+/*
+** psel_lane_p15_p15_p15_w12m1:
+** sub (w[0-9]+), w12, #?1
+** psel p15, p15, p15\.b\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p15_p15_p15_w12m1, svbool_t,
+ p15 = svpsel_lane_b8 (p15, p15, w12 - 1),
+ p15 = svpsel_lane_b8 (p15, p15, w12 - 1))
--- /dev/null
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+** mov [wx](1[2-5]), #?0
+** psel p0, p2, p7\.h\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svcount_t,
+ p0 = svpsel_lane_c16 (p2, p7, 0),
+ p0 = svpsel_lane_c16 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p0_p8_w11:
+** mov [wx](1[2-5]), [wx]11
+** psel p2, p0, p8\.h\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p0_p8_w11, svcount_t,
+ p2 = svpsel_lane_c16 (p0, p8, w11),
+ p2 = svpsel_lane_c16 (p0, p8, w11))
+
+/*
+** psel_lane_p2_p13_p15_w12:
+** psel p2, p13, p15\.h\[w12, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p15_w12, svcount_t,
+ p2 = svpsel_lane_c16 (p13, p15, w12),
+ p2 = svpsel_lane_c16 (p13, p15, w12))
+
+/*
+** psel_lane_p0_p13_p15_w15:
+** psel p0, p13, p15\.h\[w15, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p13_p15_w15, svcount_t,
+ p0 = svpsel_lane_c16 (p13, p15, w15),
+ p0 = svpsel_lane_c16 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p0_p15_w16:
+** mov [wx](1[2-5]), [wx]16
+** psel p13, p0, p15\.h\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p15_w16, svcount_t,
+ p13 = svpsel_lane_c16 (p0, p15, w16),
+ p13 = svpsel_lane_c16 (p0, p15, w16))
+
+/*
+** psel_lane_p2_p13_p8_w12p1:
+** psel p2, p13, p8\.h\[w12, 1\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p8_w12p1, svcount_t,
+ p2 = svpsel_lane_c16 (p13, p8, w12 + 1),
+ p2 = svpsel_lane_c16 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p0_p7_w12p7:
+** psel p13, p0, p7\.h\[w12, 7\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p7_w12p7, svcount_t,
+ p13 = svpsel_lane_c16 (p0, p7, w12 + 7),
+ p13 = svpsel_lane_c16 (p0, p7, w12 + 7))
+
+/*
+** psel_lane_p0_p0_p15_w12p8:
+** add (w[0-9]+), w12, #?8
+** psel p0, p0, p15\.h\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p15_w12p8, svcount_t,
+ p0 = svpsel_lane_c16 (p0, p15, w12 + 8),
+ p0 = svpsel_lane_c16 (p0, p15, w12 + 8))
+
+/*
+** psel_lane_p13_p13_p7_w12m1:
+** sub (w[0-9]+), w12, #?1
+** psel p13, p13, p7\.h\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p13_p7_w12m1, svcount_t,
+ p13 = svpsel_lane_c16 (p13, p7, w12 - 1),
+ p13 = svpsel_lane_c16 (p13, p7, w12 - 1))
--- /dev/null
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+** mov [wx](1[2-5]), #?0
+** psel p0, p2, p7\.s\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svcount_t,
+ p0 = svpsel_lane_c32 (p2, p7, 0),
+ p0 = svpsel_lane_c32 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p13_p8_w11:
+** mov [wx](1[2-5]), [wx]11
+** psel p2, p13, p8\.s\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p8_w11, svcount_t,
+ p2 = svpsel_lane_c32 (p13, p8, w11),
+ p2 = svpsel_lane_c32 (p13, p8, w11))
+
+/*
+** psel_lane_p0_p13_p15_w12:
+** psel p0, p13, p15\.s\[w12, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p13_p15_w12, svcount_t,
+ p0 = svpsel_lane_c32 (p13, p15, w12),
+ p0 = svpsel_lane_c32 (p13, p15, w12))
+
+/*
+** psel_lane_p2_p0_p15_w15:
+** psel p2, p0, p15\.s\[w15, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p0_p15_w15, svcount_t,
+ p2 = svpsel_lane_c32 (p0, p15, w15),
+ p2 = svpsel_lane_c32 (p0, p15, w15))
+
+/*
+** psel_lane_p13_p0_p7_w16:
+** mov [wx](1[2-5]), [wx]16
+** psel p13, p0, p7\.s\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p7_w16, svcount_t,
+ p13 = svpsel_lane_c32 (p0, p7, w16),
+ p13 = svpsel_lane_c32 (p0, p7, w16))
+
+/*
+** psel_lane_p2_p13_p8_w12p1:
+** psel p2, p13, p8\.s\[w12, 1\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p8_w12p1, svcount_t,
+ p2 = svpsel_lane_c32 (p13, p8, w12 + 1),
+ p2 = svpsel_lane_c32 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p0_p7_w12p3:
+** psel p13, p0, p7\.s\[w12, 3\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p7_w12p3, svcount_t,
+ p13 = svpsel_lane_c32 (p0, p7, w12 + 3),
+ p13 = svpsel_lane_c32 (p0, p7, w12 + 3))
+
+/*
+** psel_lane_p0_p0_p7_w12p4:
+** add (w[0-9]+), w12, #?4
+** psel p0, p0, p7\.s\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p7_w12p4, svcount_t,
+ p0 = svpsel_lane_c32 (p0, p7, w12 + 4),
+ p0 = svpsel_lane_c32 (p0, p7, w12 + 4))
+
+/*
+** psel_lane_p13_p13_p15_w12m1:
+** sub (w[0-9]+), w12, #?1
+** psel p13, p13, p15\.s\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p13_p15_w12m1, svcount_t,
+ p13 = svpsel_lane_c32 (p13, p15, w12 - 1),
+ p13 = svpsel_lane_c32 (p13, p15, w12 - 1))
--- /dev/null
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+** mov [wx](1[2-5]), #?0
+** psel p0, p2, p7\.d\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svcount_t,
+ p0 = svpsel_lane_c64 (p2, p7, 0),
+ p0 = svpsel_lane_c64 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p13_p8_w11:
+** mov [wx](1[2-5]), [wx]11
+** psel p2, p13, p8\.d\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p8_w11, svcount_t,
+ p2 = svpsel_lane_c64 (p13, p8, w11),
+ p2 = svpsel_lane_c64 (p13, p8, w11))
+
+/*
+** psel_lane_p2_p0_p15_w12:
+** psel p2, p0, p15\.d\[w12, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p0_p15_w12, svcount_t,
+ p2 = svpsel_lane_c64 (p0, p15, w12),
+ p2 = svpsel_lane_c64 (p0, p15, w12))
+
+/*
+** psel_lane_p0_p13_p15_w15:
+** psel p0, p13, p15\.d\[w15, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p13_p15_w15, svcount_t,
+ p0 = svpsel_lane_c64 (p13, p15, w15),
+ p0 = svpsel_lane_c64 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p0_p15_w16:
+** mov [wx](1[2-5]), [wx]16
+** psel p13, p0, p15\.d\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p15_w16, svcount_t,
+ p13 = svpsel_lane_c64 (p0, p15, w16),
+ p13 = svpsel_lane_c64 (p0, p15, w16))
+
+/*
+** psel_lane_p2_p13_p8_w12p1:
+** psel p2, p13, p8\.d\[w12, 1\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p8_w12p1, svcount_t,
+ p2 = svpsel_lane_c64 (p13, p8, w12 + 1),
+ p2 = svpsel_lane_c64 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p0_p0_p8_w12p2:
+** add (w[0-9]+), w12, #?2
+** psel p0, p0, p8\.d\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p8_w12p2, svcount_t,
+ p0 = svpsel_lane_c64 (p0, p8, w12 + 2),
+ p0 = svpsel_lane_c64 (p0, p8, w12 + 2))
+
+/*
+** psel_lane_p13_p13_p15_w12m1:
+** sub (w[0-9]+), w12, #?1
+** psel p13, p13, p15\.d\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p13_p15_w12m1, svcount_t,
+ p13 = svpsel_lane_c64 (p13, p15, w12 - 1),
+ p13 = svpsel_lane_c64 (p13, p15, w12 - 1))
--- /dev/null
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+** mov [wx](1[2-5]), #?0
+** psel p0, p2, p7\.b\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svcount_t,
+ p0 = svpsel_lane_c8 (p2, p7, 0),
+ p0 = svpsel_lane_c8 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p0_p8_w11:
+** mov [wx](1[2-5]), [wx]11
+** psel p2, p0, p8\.b\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p0_p8_w11, svcount_t,
+ p2 = svpsel_lane_c8 (p0, p8, w11),
+ p2 = svpsel_lane_c8 (p0, p8, w11))
+
+/*
+** psel_lane_p0_p13_p15_w12:
+** psel p0, p13, p15\.b\[w12, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p13_p15_w12, svcount_t,
+ p0 = svpsel_lane_c8 (p13, p15, w12),
+ p0 = svpsel_lane_c8 (p13, p15, w12))
+
+/*
+** psel_lane_p13_p0_p8_w15:
+** psel p13, p0, p8\.b\[w15, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p8_w15, svcount_t,
+ p13 = svpsel_lane_c8 (p0, p8, w15),
+ p13 = svpsel_lane_c8 (p0, p8, w15))
+
+/*
+** psel_lane_p2_p13_p7_w16:
+** mov [wx](1[2-5]), [wx]16
+** psel p2, p13, p7\.b\[w\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p7_w16, svcount_t,
+ p2 = svpsel_lane_c8 (p13, p7, w16),
+ p2 = svpsel_lane_c8 (p13, p7, w16))
+
+/*
+** psel_lane_p0_p13_p8_w12p1:
+** psel p0, p13, p8\.b\[w12, 1\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p13_p8_w12p1, svcount_t,
+ p0 = svpsel_lane_c8 (p13, p8, w12 + 1),
+ p0 = svpsel_lane_c8 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p2_p7_w12p15:
+** psel p13, p2, p7\.b\[w12, 15\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p2_p7_w12p15, svcount_t,
+ p13 = svpsel_lane_c8 (p2, p7, w12 + 15),
+ p13 = svpsel_lane_c8 (p2, p7, w12 + 15))
+
+/*
+** psel_lane_p0_p0_p15_w12p16:
+** add (w[0-9]+), w12, #?16
+** psel p0, p0, p15\.b\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p15_w12p16, svcount_t,
+ p0 = svpsel_lane_c8 (p0, p15, w12 + 16),
+ p0 = svpsel_lane_c8 (p0, p15, w12 + 16))
+
+/*
+** psel_lane_p13_p13_p15_w12m1:
+** sub (w[0-9]+), w12, #?1
+** psel p13, p13, p15\.b\[\1, 0\]
+** ret
+*/
+TEST_SELECT_P (psel_lane_p13_p13_p15_w12m1, svcount_t,
+ p13 = svpsel_lane_c8 (p13, p15, w12 - 1),
+ p13 = svpsel_lane_c8 (p13, p15, w12 - 1))