From: Karl Meakin <[email protected]>
Port the `vreinterpret` family of intrinsics to the pragma-based framework.
gcc/ChangeLog:
* config/aarch64/aarch64-acle-builtins.h (TYPES_neon_reinterpret1,
TYPES_neon_reinterpret,
TYPES_neon_reinterpretq1, TYPES_neon_reinterpretq, neon_reinterpret,
neon_reinterpretq):
New type lists.
* config/aarch64/aarch64-builtins.cc (VREINTERPRET_BUILTIN2,
VREINTERPRET_BUILTINS1,
VREINTERPRET_BUILTINS, VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1,
VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN): Delete macros.
(AARCH64_SIMD_VREINTERPRET_BUILTINS): Delete enum member.
(aarch64_init_simd_intrinsics): Delete function.
(init_arm_neon_builtins): Delete call to `aarch64_init_simd_intrinsics`.
(aarch64_general_fold_builtin): Delete case for
`AARCH64_SIMD_VREINTERPRET_BUILTINS`.
* config/aarch64/aarch64-neon-builtins-base.cc (struct
gimple_reinterpret): New struct.
(vreinterpret, vreinterpretq): New function bases.
* config/aarch64/aarch64-neon-builtins-base.def (vreinterpret,
vreinterpretq): New function
groups.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/neon/vreinterpret.c: New test.
---
gcc/config/aarch64/aarch64-acle-builtins.h | 66 +
gcc/config/aarch64/aarch64-builtins.cc | 163 -
.../aarch64/aarch64-neon-builtins-base.cc | 15 +
.../aarch64/aarch64-neon-builtins-base.def | 6 +
.../gcc.target/aarch64/neon/vreinterpret.c | 3143 +++++++++++++++++
5 files changed, 3230 insertions(+), 163 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vreinterpret.c
diff --git a/gcc/config/aarch64/aarch64-acle-builtins.h
b/gcc/config/aarch64/aarch64-acle-builtins.h
index 837de2d12326..7d0e434f8754 100644
--- a/gcc/config/aarch64/aarch64-acle-builtins.h
+++ b/gcc/config/aarch64/aarch64-acle-builtins.h
@@ -1856,6 +1856,70 @@ void build_all (function_builder &b, const char
*signature,
S (p16), S (s16), S (u16), S (f16), \
S (s32), S (u32), S (f32)
+/* vreinterpret intrinsics are defined for any pair of element types.
+ { _mf8 } { _mf8 }
+ { _bf16 } { _bf16 }
+ { _f16 _f32 _f64 } { _f16 _f32 _f64 }
+ { _s8 _s16 _s32 _s64 } x { _s8 _s16 _s32 _s64 }
+ { _u8 _u16 _u32 _u64 } { _u8 _u16 _u32 _u64 }
+ { _p8 _p16 _p64 } { _p8 _p16 _p64 }. */
+#define TYPES_neon_reinterpret1(D, A) \
+ D (A, mf8), \
+ D (A, bf16), \
+ D (A, f16), D (A, f32), D (A, f64), \
+ D (A, s8), D (A, s16), D (A, s32), D (A, s64), \
+ D (A, u8), D (A, u16), D (A, u32), D (A, u64), \
+ D (A, p8), D (A, p16) , D (A, p64)
+#define TYPES_neon_reinterpret(S, D, T) \
+ TYPES_neon_reinterpret1 (D, mf8), \
+ TYPES_neon_reinterpret1 (D, bf16), \
+ TYPES_neon_reinterpret1 (D, f16), \
+ TYPES_neon_reinterpret1 (D, f32), \
+ TYPES_neon_reinterpret1 (D, f64), \
+ TYPES_neon_reinterpret1 (D, s8), \
+ TYPES_neon_reinterpret1 (D, s16), \
+ TYPES_neon_reinterpret1 (D, s32), \
+ TYPES_neon_reinterpret1 (D, s64), \
+ TYPES_neon_reinterpret1 (D, u8), \
+ TYPES_neon_reinterpret1 (D, u16), \
+ TYPES_neon_reinterpret1 (D, u32), \
+ TYPES_neon_reinterpret1 (D, u64), \
+ TYPES_neon_reinterpret1 (D, p8), \
+ TYPES_neon_reinterpret1 (D, p16), \
+ TYPES_neon_reinterpret1 (D, p64)
+
+/* vreinterpretq intrinsics are additionally defined for p128.
+ { _bf16 } { _bf16 }
+ { _f16 _f32 _f64 } { _f16 _f32 _f64 }
+ { _mf8 } { _mf8 }
+ { _s8 _s16 _s32 _s64 } x { _s8 _s16 _s32 _s64 }
+ { _u8 _u16 _u32 _u64 } { _u8 _u16 _u32 _u64 }
+ { _p8 _p16 _p64 _p128 } { _p8 _p16 _p64 _p128 }. */
+#define TYPES_neon_reinterpretq1(D, A) \
+ D (A, mf8), \
+ D (A, bf16), \
+ D (A, f16), D (A, f32), D (A, f64), \
+ D (A, s8), D (A, s16), D (A, s32), D (A, s64), \
+ D (A, u8), D (A, u16), D (A, u32), D (A, u64), \
+ D (A, p8), D (A, p16) , D (A, p64), D (A, p128)
+#define TYPES_neon_reinterpretq(S, D, T) \
+ TYPES_neon_reinterpretq1 (D, mf8), \
+ TYPES_neon_reinterpretq1 (D, bf16), \
+ TYPES_neon_reinterpretq1 (D, f16), \
+ TYPES_neon_reinterpretq1 (D, f32), \
+ TYPES_neon_reinterpretq1 (D, f64), \
+ TYPES_neon_reinterpretq1 (D, s8), \
+ TYPES_neon_reinterpretq1 (D, s16), \
+ TYPES_neon_reinterpretq1 (D, s32), \
+ TYPES_neon_reinterpretq1 (D, s64), \
+ TYPES_neon_reinterpretq1 (D, u8), \
+ TYPES_neon_reinterpretq1 (D, u16), \
+ TYPES_neon_reinterpretq1 (D, u32), \
+ TYPES_neon_reinterpretq1 (D, u64), \
+ TYPES_neon_reinterpretq1 (D, p8), \
+ TYPES_neon_reinterpretq1 (D, p16), \
+ TYPES_neon_reinterpretq1 (D, p64), \
+ TYPES_neon_reinterpretq1 (D, p128)
/* Describe a tuple of type suffixes in which only the first is used. */
#define DEF_VECTOR_TYPE(X) \
@@ -2005,6 +2069,8 @@ DEF_SVE_TYPES_ARRAY (neon_copy_lane);
DEF_SVE_TYPES_ARRAY (neon_rev16);
DEF_SVE_TYPES_ARRAY (neon_rev32);
DEF_SVE_TYPES_ARRAY (neon_rev64);
+DEF_SVE_TYPES_ARRAY (neon_reinterpret);
+DEF_SVE_TYPES_ARRAY (neon_reinterpretq);
static const group_suffix_index groups_none[] = {
GROUP_none, NUM_GROUP_SUFFIXES
diff --git a/gcc/config/aarch64/aarch64-builtins.cc
b/gcc/config/aarch64/aarch64-builtins.cc
index 327ae8bc20bb..168b46eb464a 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -591,104 +591,6 @@ static aarch64_simd_builtin_datum
aarch64_simd_builtin_data[] = {
FCMLA_LANEQ_BUILTIN (270, v4hf, fcmla_laneq, V4HF, true) \
-/* vreinterpret intrinsics are defined for any pair of element types.
- { _bf16 } { _bf16 }
- { _f16 _f32 _f64 } { _f16 _f32 _f64 }
- { _mf8 } { _mf8 }
- { _s8 _s16 _s32 _s64 } x { _s8 _s16 _s32 _s64 }
- { _u8 _u16 _u32 _u64 } { _u8 _u16 _u32 _u64 }
- { _p8 _p16 _p64 } { _p8 _p16 _p64 }. */
-#define VREINTERPRET_BUILTIN2(A, B) \
- VREINTERPRET_BUILTIN (A, B, d)
-
-#define VREINTERPRET_BUILTINS1(A) \
- VREINTERPRET_BUILTIN2 (A, bf16) \
- VREINTERPRET_BUILTIN2 (A, f16) \
- VREINTERPRET_BUILTIN2 (A, f32) \
- VREINTERPRET_BUILTIN2 (A, f64) \
- VREINTERPRET_BUILTIN2 (A, mf8) \
- VREINTERPRET_BUILTIN2 (A, s8) \
- VREINTERPRET_BUILTIN2 (A, s16) \
- VREINTERPRET_BUILTIN2 (A, s32) \
- VREINTERPRET_BUILTIN2 (A, s64) \
- VREINTERPRET_BUILTIN2 (A, u8) \
- VREINTERPRET_BUILTIN2 (A, u16) \
- VREINTERPRET_BUILTIN2 (A, u32) \
- VREINTERPRET_BUILTIN2 (A, u64) \
- VREINTERPRET_BUILTIN2 (A, p8) \
- VREINTERPRET_BUILTIN2 (A, p16) \
- VREINTERPRET_BUILTIN2 (A, p64)
-
-#define VREINTERPRET_BUILTINS \
- VREINTERPRET_BUILTINS1 (bf16) \
- VREINTERPRET_BUILTINS1 (f16) \
- VREINTERPRET_BUILTINS1 (f32) \
- VREINTERPRET_BUILTINS1 (f64) \
- VREINTERPRET_BUILTINS1 (mf8) \
- VREINTERPRET_BUILTINS1 (s8) \
- VREINTERPRET_BUILTINS1 (s16) \
- VREINTERPRET_BUILTINS1 (s32) \
- VREINTERPRET_BUILTINS1 (s64) \
- VREINTERPRET_BUILTINS1 (u8) \
- VREINTERPRET_BUILTINS1 (u16) \
- VREINTERPRET_BUILTINS1 (u32) \
- VREINTERPRET_BUILTINS1 (u64) \
- VREINTERPRET_BUILTINS1 (p8) \
- VREINTERPRET_BUILTINS1 (p16) \
- VREINTERPRET_BUILTINS1 (p64)
-
-/* vreinterpretq intrinsics are additionally defined for p128.
- { _bf16 } { _bf16 }
- { _f16 _f32 _f64 } { _f16 _f32 _f64 }
- { _mf8 } { _mf8 }
- { _s8 _s16 _s32 _s64 } x { _s8 _s16 _s32 _s64 }
- { _u8 _u16 _u32 _u64 } { _u8 _u16 _u32 _u64 }
- { _p8 _p16 _p64 _p128 } { _p8 _p16 _p64 _p128 }. */
-#define VREINTERPRETQ_BUILTIN2(A, B) \
- VREINTERPRET_BUILTIN (A, B, q)
-
-#define VREINTERPRETQ_BUILTINS1(A) \
- VREINTERPRETQ_BUILTIN2 (A, bf16) \
- VREINTERPRETQ_BUILTIN2 (A, f16) \
- VREINTERPRETQ_BUILTIN2 (A, f32) \
- VREINTERPRETQ_BUILTIN2 (A, f64) \
- VREINTERPRETQ_BUILTIN2 (A, mf8) \
- VREINTERPRETQ_BUILTIN2 (A, s8) \
- VREINTERPRETQ_BUILTIN2 (A, s16) \
- VREINTERPRETQ_BUILTIN2 (A, s32) \
- VREINTERPRETQ_BUILTIN2 (A, s64) \
- VREINTERPRETQ_BUILTIN2 (A, u8) \
- VREINTERPRETQ_BUILTIN2 (A, u16) \
- VREINTERPRETQ_BUILTIN2 (A, u32) \
- VREINTERPRETQ_BUILTIN2 (A, u64) \
- VREINTERPRETQ_BUILTIN2 (A, p8) \
- VREINTERPRETQ_BUILTIN2 (A, p16) \
- VREINTERPRETQ_BUILTIN2 (A, p64) \
- VREINTERPRETQ_BUILTIN2 (A, p128)
-
-#define VREINTERPRETQ_BUILTINS \
- VREINTERPRETQ_BUILTINS1 (bf16) \
- VREINTERPRETQ_BUILTINS1 (f16) \
- VREINTERPRETQ_BUILTINS1 (f32) \
- VREINTERPRETQ_BUILTINS1 (f64) \
- VREINTERPRETQ_BUILTINS1 (mf8) \
- VREINTERPRETQ_BUILTINS1 (s8) \
- VREINTERPRETQ_BUILTINS1 (s16) \
- VREINTERPRETQ_BUILTINS1 (s32) \
- VREINTERPRETQ_BUILTINS1 (s64) \
- VREINTERPRETQ_BUILTINS1 (u8) \
- VREINTERPRETQ_BUILTINS1 (u16) \
- VREINTERPRETQ_BUILTINS1 (u32) \
- VREINTERPRETQ_BUILTINS1 (u64) \
- VREINTERPRETQ_BUILTINS1 (p8) \
- VREINTERPRETQ_BUILTINS1 (p16) \
- VREINTERPRETQ_BUILTINS1 (p64) \
- VREINTERPRETQ_BUILTINS1 (p128)
-
-#define AARCH64_SIMD_VREINTERPRET_BUILTINS \
- VREINTERPRET_BUILTINS \
- VREINTERPRETQ_BUILTINS
-
#include "aarch64-builtin-pairs.def"
#define LO_HI_PAIRINGS \
@@ -735,9 +637,6 @@ typedef struct
#define FCMLA_LANEQ_BUILTIN(I, N, X, M, T) \
AARCH64_SIMD_BUILTIN_FCMLA_LANEQ##I##_##M,
-#define VREINTERPRET_BUILTIN(A, B, L) \
- AARCH64_SIMD_BUILTIN_VREINTERPRET##L##_##A##_##B,
-
#undef VAR1
#define VAR1(T, N, MAP, FLAG, A) \
AARCH64_SIMD_BUILTIN_##T##_##N##A,
@@ -776,7 +675,6 @@ enum aarch64_builtins
AARCH64_CRC32_BUILTINS
AARCH64_CRC32_BUILTIN_MAX,
/* SIMD intrinsic builtins. */
- AARCH64_SIMD_VREINTERPRET_BUILTINS
/* ARMv8.3-A Pointer Authentication Builtins. */
AARCH64_PAUTH_BUILTIN_AUTIA1716,
AARCH64_PAUTH_BUILTIN_PACIA1716,
@@ -875,22 +773,6 @@ static aarch64_fcmla_laneq_builtin_datum
aarch64_fcmla_lane_builtin_data[] = {
AARCH64_SIMD_FCMLA_LANEQ_BUILTINS
};
-#undef VREINTERPRET_BUILTIN
-#define VREINTERPRET_BUILTIN(A, B, L) \
- {"vreinterpret" SIMD_INTR_LENGTH_CHAR(L) "_" #A "_" #B, \
- AARCH64_SIMD_BUILTIN_VREINTERPRET##L##_##A##_##B, \
- 2, \
- { SIMD_INTR_MODE(A, L), SIMD_INTR_MODE(B, L) }, \
- { SIMD_INTR_QUAL(A), SIMD_INTR_QUAL(B) }, \
- FLAG_DEFAULT, \
- SIMD_INTR_MODE(A, L) == SIMD_INTR_MODE(B, L) \
- && SIMD_INTR_QUAL(A) == SIMD_INTR_QUAL(B) \
- },
-
-static const aarch64_simd_intrinsic_datum aarch64_simd_intrinsic_data[] = {
- AARCH64_SIMD_VREINTERPRET_BUILTINS
-};
-
#undef CRC32_BUILTIN
static GTY(()) tree aarch64_builtin_decls[AARCH64_BUILTIN_MAX];
@@ -1404,44 +1286,6 @@ aarch64_init_fcmla_laneq_builtins (void)
}
}
-void
-aarch64_init_simd_intrinsics (void)
-{
- unsigned int i = 0;
-
- for (i = 0; i < ARRAY_SIZE (aarch64_simd_intrinsic_data); ++i)
- {
- auto d = &aarch64_simd_intrinsic_data[i];
-
- if (d->skip)
- continue;
-
- tree return_type = void_type_node;
- tree args = void_list_node;
-
- for (int op_num = d->op_count - 1; op_num >= 0; op_num--)
- {
- machine_mode op_mode = d->op_modes[op_num];
- enum aarch64_type_qualifiers qualifiers = d->qualifiers[op_num];
-
- tree eltype = aarch64_simd_builtin_type (op_mode, qualifiers);
-
- if (op_num == 0)
- return_type = eltype;
- else
- args = tree_cons (NULL_TREE, eltype, args);
- }
-
- tree ftype = build_function_type (return_type, args);
- tree attrs = aarch64_get_attributes (d->flags, d->op_modes[0]);
- unsigned int code
- = (d->fcode << AARCH64_BUILTIN_SHIFT | AARCH64_BUILTIN_GENERAL);
- tree fndecl = simulate_builtin_function_decl (input_location, d->name,
- ftype, code, NULL, attrs);
- aarch64_builtin_decls[d->fcode] = fndecl;
- }
-}
-
void
aarch64_init_simd_builtin_functions (bool called_from_pragma)
{
@@ -1869,7 +1713,6 @@ init_arm_neon_builtins (void)
register_tuple_type (count, i);
aarch64_init_simd_builtin_functions (true);
- aarch64_init_simd_intrinsics ();
aarch64_init_pragma_builtins ();
}
@@ -4524,10 +4367,6 @@ aarch64_fold_builtin_lane_check (tree arg0, tree arg1,
tree arg2)
#define VAR1(T, N, MAP, FLAG, A) \
case AARCH64_SIMD_BUILTIN_##T##_##N##A:
-#undef VREINTERPRET_BUILTIN
-#define VREINTERPRET_BUILTIN(A, B, L) \
- case AARCH64_SIMD_BUILTIN_VREINTERPRET##L##_##A##_##B:
-
/* Try to fold a call to the built-in function with subcode FCODE. The
function is passed the N_ARGS arguments in ARGS and it returns a value
of type TYPE. Return the new expression on success and NULL_TREE on
@@ -4544,8 +4383,6 @@ aarch64_general_fold_builtin (unsigned int fcode, tree
type,
VAR1 (UNOP, floatv4si, 2, ALL, v4sf)
VAR1 (UNOP, floatv2di, 2, ALL, v2df)
return fold_build1 (FLOAT_EXPR, type, args[0]);
- AARCH64_SIMD_VREINTERPRET_BUILTINS
- return fold_build1 (VIEW_CONVERT_EXPR, type, args[0]);
case AARCH64_SIMD_BUILTIN_LANE_CHECK:
gcc_assert (n_args == 3);
if (aarch64_fold_builtin_lane_check (args[0], args[1], args[2]))
diff --git a/gcc/config/aarch64/aarch64-neon-builtins-base.cc
b/gcc/config/aarch64/aarch64-neon-builtins-base.cc
index a3239f0b72ca..3a7940468b94 100644
--- a/gcc/config/aarch64/aarch64-neon-builtins-base.cc
+++ b/gcc/config/aarch64/aarch64-neon-builtins-base.cc
@@ -650,6 +650,21 @@ zip_mask (gimple_folder &f)
return builder.build ();
}
+struct gimple_reinterpret : public gimple_function_base
+{
+ gimple *fold (gimple_folder &f) const override
+ {
+ auto input = gimple_call_arg (f.call, 0);
+ auto ret_type = TREE_TYPE (f.lhs);
+ auto reinterpret = fold_build1 (VIEW_CONVERT_EXPR, ret_type, input);
+ return gimple_build_assign (f.lhs, reinterpret);
+ }
+};
+
+// Reinterpret
+NEON_FUNCTION (vreinterpret, gimple_reinterpret,)
+NEON_FUNCTION (vreinterpretq, gimple_reinterpret,)
+
// Lane get/set
NEON_FUNCTION (vcreate, gimple_create,)
NEON_FUNCTION (vcombine, gimple_combine,)
diff --git a/gcc/config/aarch64/aarch64-neon-builtins-base.def
b/gcc/config/aarch64/aarch64-neon-builtins-base.def
index 3ed6be649b9c..d2c09d2a1ad8 100644
--- a/gcc/config/aarch64/aarch64-neon-builtins-base.def
+++ b/gcc/config/aarch64/aarch64-neon-builtins-base.def
@@ -17,6 +17,12 @@
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
+// Reinterpret
+#define REQUIRED_EXTENSIONS nonstreaming_only (AARCH64_FL_SIMD)
+DEF_NEON_FUNCTION (vreinterpret, neon_reinterpret, ("D0,D1"))
+DEF_NEON_FUNCTION (vreinterpretq, neon_reinterpretq, ("Q0,Q1"))
+#undef REQUIRED_EXTENSIONS
+
// Lane manipulation
#define REQUIRED_EXTENSIONS nonstreaming_only (AARCH64_FL_SIMD)
DEF_NEON_FUNCTION (vcreate, all_neon, ("D0,su64"))
diff --git a/gcc/testsuite/gcc.target/aarch64/neon/vreinterpret.c
b/gcc/testsuite/gcc.target/aarch64/neon/vreinterpret.c
new file mode 100644
index 000000000000..3843626fad5c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/neon/vreinterpret.c
@@ -0,0 +1,3143 @@
+/* { dg-do compile } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+#include "arm_neon_test.h"
+
+// FIXME: reinterprets to/from p128 generate load and stores to the stack,
+// rather than GPR <-> FPR moves
+
+/*
+** test_vreinterpret_u8_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_s8, uint8x8_t, int8x8_t)
+
+/*
+** test_vreinterpret_u8_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_p8, uint8x8_t, poly8x8_t)
+
+/*
+** test_vreinterpret_u8_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_mf8, uint8x8_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_u8_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_u16, uint8x8_t, uint16x4_t)
+
+/*
+** test_vreinterpret_u8_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_s16, uint8x8_t, int16x4_t)
+
+/*
+** test_vreinterpret_u8_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_p16, uint8x8_t, poly16x4_t)
+
+/*
+** test_vreinterpret_u8_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_f16, uint8x8_t, float16x4_t)
+
+/*
+** test_vreinterpret_u8_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_bf16, uint8x8_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_u8_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_u32, uint8x8_t, uint32x2_t)
+
+/*
+** test_vreinterpret_u8_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_s32, uint8x8_t, int32x2_t)
+
+/*
+** test_vreinterpret_u8_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_f32, uint8x8_t, float32x2_t)
+
+/*
+** test_vreinterpret_u8_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_u64, uint8x8_t, uint64x1_t)
+
+/*
+** test_vreinterpret_u8_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_s64, uint8x8_t, int64x1_t)
+
+/*
+** test_vreinterpret_u8_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_p64, uint8x8_t, poly64x1_t)
+
+/*
+** test_vreinterpret_u8_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u8_f64, uint8x8_t, float64x1_t)
+
+/*
+** test_vreinterpret_s8_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_u8, int8x8_t, uint8x8_t)
+
+/*
+** test_vreinterpret_s8_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_p8, int8x8_t, poly8x8_t)
+
+/*
+** test_vreinterpret_s8_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_mf8, int8x8_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_s8_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_u16, int8x8_t, uint16x4_t)
+
+/*
+** test_vreinterpret_s8_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_s16, int8x8_t, int16x4_t)
+
+/*
+** test_vreinterpret_s8_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_p16, int8x8_t, poly16x4_t)
+
+/*
+** test_vreinterpret_s8_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_f16, int8x8_t, float16x4_t)
+
+/*
+** test_vreinterpret_s8_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_bf16, int8x8_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_s8_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_u32, int8x8_t, uint32x2_t)
+
+/*
+** test_vreinterpret_s8_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_s32, int8x8_t, int32x2_t)
+
+/*
+** test_vreinterpret_s8_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_f32, int8x8_t, float32x2_t)
+
+/*
+** test_vreinterpret_s8_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_u64, int8x8_t, uint64x1_t)
+
+/*
+** test_vreinterpret_s8_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_s64, int8x8_t, int64x1_t)
+
+/*
+** test_vreinterpret_s8_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_p64, int8x8_t, poly64x1_t)
+
+/*
+** test_vreinterpret_s8_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s8_f64, int8x8_t, float64x1_t)
+
+/*
+** test_vreinterpret_p8_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_u8, poly8x8_t, uint8x8_t)
+
+/*
+** test_vreinterpret_p8_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_s8, poly8x8_t, int8x8_t)
+
+/*
+** test_vreinterpret_p8_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_mf8, poly8x8_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_p8_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_u16, poly8x8_t, uint16x4_t)
+
+/*
+** test_vreinterpret_p8_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_s16, poly8x8_t, int16x4_t)
+
+/*
+** test_vreinterpret_p8_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_p16, poly8x8_t, poly16x4_t)
+
+/*
+** test_vreinterpret_p8_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_f16, poly8x8_t, float16x4_t)
+
+/*
+** test_vreinterpret_p8_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_bf16, poly8x8_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_p8_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_u32, poly8x8_t, uint32x2_t)
+
+/*
+** test_vreinterpret_p8_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_s32, poly8x8_t, int32x2_t)
+
+/*
+** test_vreinterpret_p8_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_f32, poly8x8_t, float32x2_t)
+
+/*
+** test_vreinterpret_p8_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_u64, poly8x8_t, uint64x1_t)
+
+/*
+** test_vreinterpret_p8_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_s64, poly8x8_t, int64x1_t)
+
+/*
+** test_vreinterpret_p8_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_p64, poly8x8_t, poly64x1_t)
+
+/*
+** test_vreinterpret_p8_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_p8_f64, poly8x8_t, float64x1_t)
+
+/*
+** test_vreinterpret_mf8_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_u8, mfloat8x8_t, uint8x8_t)
+
+/*
+** test_vreinterpret_mf8_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_s8, mfloat8x8_t, int8x8_t)
+
+/*
+** test_vreinterpret_mf8_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_p8, mfloat8x8_t, poly8x8_t)
+
+/*
+** test_vreinterpret_mf8_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_u16, mfloat8x8_t, uint16x4_t)
+
+/*
+** test_vreinterpret_mf8_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_s16, mfloat8x8_t, int16x4_t)
+
+/*
+** test_vreinterpret_mf8_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_p16, mfloat8x8_t, poly16x4_t)
+
+/*
+** test_vreinterpret_mf8_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_f16, mfloat8x8_t, float16x4_t)
+
+/*
+** test_vreinterpret_mf8_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_bf16, mfloat8x8_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_mf8_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_u32, mfloat8x8_t, uint32x2_t)
+
+/*
+** test_vreinterpret_mf8_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_s32, mfloat8x8_t, int32x2_t)
+
+/*
+** test_vreinterpret_mf8_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_f32, mfloat8x8_t, float32x2_t)
+
+/*
+** test_vreinterpret_mf8_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_u64, mfloat8x8_t, uint64x1_t)
+
+/*
+** test_vreinterpret_mf8_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_s64, mfloat8x8_t, int64x1_t)
+
+/*
+** test_vreinterpret_mf8_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_p64, mfloat8x8_t, poly64x1_t)
+
+/*
+** test_vreinterpret_mf8_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_mf8_f64, mfloat8x8_t, float64x1_t)
+
+/*
+** test_vreinterpret_u16_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_u8, uint16x4_t, uint8x8_t)
+
+/*
+** test_vreinterpret_u16_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_s8, uint16x4_t, int8x8_t)
+
+/*
+** test_vreinterpret_u16_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_p8, uint16x4_t, poly8x8_t)
+
+/*
+** test_vreinterpret_u16_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_mf8, uint16x4_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_u16_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_s16, uint16x4_t, int16x4_t)
+
+/*
+** test_vreinterpret_u16_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_p16, uint16x4_t, poly16x4_t)
+
+/*
+** test_vreinterpret_u16_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_f16, uint16x4_t, float16x4_t)
+
+/*
+** test_vreinterpret_u16_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_bf16, uint16x4_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_u16_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_u32, uint16x4_t, uint32x2_t)
+
+/*
+** test_vreinterpret_u16_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_s32, uint16x4_t, int32x2_t)
+
+/*
+** test_vreinterpret_u16_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_f32, uint16x4_t, float32x2_t)
+
+/*
+** test_vreinterpret_u16_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_u64, uint16x4_t, uint64x1_t)
+
+/*
+** test_vreinterpret_u16_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_s64, uint16x4_t, int64x1_t)
+
+/*
+** test_vreinterpret_u16_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_p64, uint16x4_t, poly64x1_t)
+
+/*
+** test_vreinterpret_u16_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u16_f64, uint16x4_t, float64x1_t)
+
+/*
+** test_vreinterpret_s16_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_u8, int16x4_t, uint8x8_t)
+
+/*
+** test_vreinterpret_s16_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_s8, int16x4_t, int8x8_t)
+
+/*
+** test_vreinterpret_s16_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_p8, int16x4_t, poly8x8_t)
+
+/*
+** test_vreinterpret_s16_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_mf8, int16x4_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_s16_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_u16, int16x4_t, uint16x4_t)
+
+/*
+** test_vreinterpret_s16_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_p16, int16x4_t, poly16x4_t)
+
+/*
+** test_vreinterpret_s16_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_f16, int16x4_t, float16x4_t)
+
+/*
+** test_vreinterpret_s16_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_bf16, int16x4_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_s16_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_u32, int16x4_t, uint32x2_t)
+
+/*
+** test_vreinterpret_s16_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_s32, int16x4_t, int32x2_t)
+
+/*
+** test_vreinterpret_s16_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_f32, int16x4_t, float32x2_t)
+
+/*
+** test_vreinterpret_s16_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_u64, int16x4_t, uint64x1_t)
+
+/*
+** test_vreinterpret_s16_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_s64, int16x4_t, int64x1_t)
+
+/*
+** test_vreinterpret_s16_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_p64, int16x4_t, poly64x1_t)
+
+/*
+** test_vreinterpret_s16_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s16_f64, int16x4_t, float64x1_t)
+
+/*
+** test_vreinterpret_p16_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_u8, poly16x4_t, uint8x8_t)
+
+/*
+** test_vreinterpret_p16_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_s8, poly16x4_t, int8x8_t)
+
+/*
+** test_vreinterpret_p16_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_p8, poly16x4_t, poly8x8_t)
+
+/*
+** test_vreinterpret_p16_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_mf8, poly16x4_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_p16_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_u16, poly16x4_t, uint16x4_t)
+
+/*
+** test_vreinterpret_p16_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_s16, poly16x4_t, int16x4_t)
+
+/*
+** test_vreinterpret_p16_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_f16, poly16x4_t, float16x4_t)
+
+/*
+** test_vreinterpret_p16_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_bf16, poly16x4_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_p16_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_u32, poly16x4_t, uint32x2_t)
+
+/*
+** test_vreinterpret_p16_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_s32, poly16x4_t, int32x2_t)
+
+/*
+** test_vreinterpret_p16_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_f32, poly16x4_t, float32x2_t)
+
+/*
+** test_vreinterpret_p16_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_u64, poly16x4_t, uint64x1_t)
+
+/*
+** test_vreinterpret_p16_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_s64, poly16x4_t, int64x1_t)
+
+/*
+** test_vreinterpret_p16_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_p64, poly16x4_t, poly64x1_t)
+
+/*
+** test_vreinterpret_p16_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_p16_f64, poly16x4_t, float64x1_t)
+
+/*
+** test_vreinterpret_f16_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_u8, float16x4_t, uint8x8_t)
+
+/*
+** test_vreinterpret_f16_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_s8, float16x4_t, int8x8_t)
+
+/*
+** test_vreinterpret_f16_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_p8, float16x4_t, poly8x8_t)
+
+/*
+** test_vreinterpret_f16_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_mf8, float16x4_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_f16_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_u16, float16x4_t, uint16x4_t)
+
+/*
+** test_vreinterpret_f16_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_s16, float16x4_t, int16x4_t)
+
+/*
+** test_vreinterpret_f16_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_p16, float16x4_t, poly16x4_t)
+
+/*
+** test_vreinterpret_f16_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_bf16, float16x4_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_f16_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_u32, float16x4_t, uint32x2_t)
+
+/*
+** test_vreinterpret_f16_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_s32, float16x4_t, int32x2_t)
+
+/*
+** test_vreinterpret_f16_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_f32, float16x4_t, float32x2_t)
+
+/*
+** test_vreinterpret_f16_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_u64, float16x4_t, uint64x1_t)
+
+/*
+** test_vreinterpret_f16_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_s64, float16x4_t, int64x1_t)
+
+/*
+** test_vreinterpret_f16_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_p64, float16x4_t, poly64x1_t)
+
+/*
+** test_vreinterpret_f16_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_f16_f64, float16x4_t, float64x1_t)
+
+/*
+** test_vreinterpret_bf16_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_u8, bfloat16x4_t, uint8x8_t)
+
+/*
+** test_vreinterpret_bf16_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_s8, bfloat16x4_t, int8x8_t)
+
+/*
+** test_vreinterpret_bf16_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_p8, bfloat16x4_t, poly8x8_t)
+
+/*
+** test_vreinterpret_bf16_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_mf8, bfloat16x4_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_bf16_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_u16, bfloat16x4_t, uint16x4_t)
+
+/*
+** test_vreinterpret_bf16_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_s16, bfloat16x4_t, int16x4_t)
+
+/*
+** test_vreinterpret_bf16_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_p16, bfloat16x4_t, poly16x4_t)
+
+/*
+** test_vreinterpret_bf16_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_f16, bfloat16x4_t, float16x4_t)
+
+/*
+** test_vreinterpret_bf16_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_u32, bfloat16x4_t, uint32x2_t)
+
+/*
+** test_vreinterpret_bf16_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_s32, bfloat16x4_t, int32x2_t)
+
+/*
+** test_vreinterpret_bf16_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_f32, bfloat16x4_t, float32x2_t)
+
+/*
+** test_vreinterpret_bf16_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_u64, bfloat16x4_t, uint64x1_t)
+
+/*
+** test_vreinterpret_bf16_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_s64, bfloat16x4_t, int64x1_t)
+
+/*
+** test_vreinterpret_bf16_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_p64, bfloat16x4_t, poly64x1_t)
+
+/*
+** test_vreinterpret_bf16_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_bf16_f64, bfloat16x4_t, float64x1_t)
+
+/*
+** test_vreinterpret_u32_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_u8, uint32x2_t, uint8x8_t)
+
+/*
+** test_vreinterpret_u32_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_s8, uint32x2_t, int8x8_t)
+
+/*
+** test_vreinterpret_u32_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_p8, uint32x2_t, poly8x8_t)
+
+/*
+** test_vreinterpret_u32_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_mf8, uint32x2_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_u32_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_u16, uint32x2_t, uint16x4_t)
+
+/*
+** test_vreinterpret_u32_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_s16, uint32x2_t, int16x4_t)
+
+/*
+** test_vreinterpret_u32_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_p16, uint32x2_t, poly16x4_t)
+
+/*
+** test_vreinterpret_u32_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_f16, uint32x2_t, float16x4_t)
+
+/*
+** test_vreinterpret_u32_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_bf16, uint32x2_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_u32_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_s32, uint32x2_t, int32x2_t)
+
+/*
+** test_vreinterpret_u32_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_f32, uint32x2_t, float32x2_t)
+
+/*
+** test_vreinterpret_u32_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_u64, uint32x2_t, uint64x1_t)
+
+/*
+** test_vreinterpret_u32_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_s64, uint32x2_t, int64x1_t)
+
+/*
+** test_vreinterpret_u32_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_p64, uint32x2_t, poly64x1_t)
+
+/*
+** test_vreinterpret_u32_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u32_f64, uint32x2_t, float64x1_t)
+
+/*
+** test_vreinterpret_s32_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_u8, int32x2_t, uint8x8_t)
+
+/*
+** test_vreinterpret_s32_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_s8, int32x2_t, int8x8_t)
+
+/*
+** test_vreinterpret_s32_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_p8, int32x2_t, poly8x8_t)
+
+/*
+** test_vreinterpret_s32_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_mf8, int32x2_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_s32_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_u16, int32x2_t, uint16x4_t)
+
+/*
+** test_vreinterpret_s32_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_s16, int32x2_t, int16x4_t)
+
+/*
+** test_vreinterpret_s32_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_p16, int32x2_t, poly16x4_t)
+
+/*
+** test_vreinterpret_s32_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_f16, int32x2_t, float16x4_t)
+
+/*
+** test_vreinterpret_s32_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_bf16, int32x2_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_s32_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_u32, int32x2_t, uint32x2_t)
+
+/*
+** test_vreinterpret_s32_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_f32, int32x2_t, float32x2_t)
+
+/*
+** test_vreinterpret_s32_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_u64, int32x2_t, uint64x1_t)
+
+/*
+** test_vreinterpret_s32_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_s64, int32x2_t, int64x1_t)
+
+/*
+** test_vreinterpret_s32_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_p64, int32x2_t, poly64x1_t)
+
+/*
+** test_vreinterpret_s32_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s32_f64, int32x2_t, float64x1_t)
+
+/*
+** test_vreinterpret_f32_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_u8, float32x2_t, uint8x8_t)
+
+/*
+** test_vreinterpret_f32_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_s8, float32x2_t, int8x8_t)
+
+/*
+** test_vreinterpret_f32_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_p8, float32x2_t, poly8x8_t)
+
+/*
+** test_vreinterpret_f32_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_mf8, float32x2_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_f32_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_u16, float32x2_t, uint16x4_t)
+
+/*
+** test_vreinterpret_f32_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_s16, float32x2_t, int16x4_t)
+
+/*
+** test_vreinterpret_f32_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_p16, float32x2_t, poly16x4_t)
+
+/*
+** test_vreinterpret_f32_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_f16, float32x2_t, float16x4_t)
+
+/*
+** test_vreinterpret_f32_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_bf16, float32x2_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_f32_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_u32, float32x2_t, uint32x2_t)
+
+/*
+** test_vreinterpret_f32_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_s32, float32x2_t, int32x2_t)
+
+/*
+** test_vreinterpret_f32_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_u64, float32x2_t, uint64x1_t)
+
+/*
+** test_vreinterpret_f32_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_s64, float32x2_t, int64x1_t)
+
+/*
+** test_vreinterpret_f32_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_p64, float32x2_t, poly64x1_t)
+
+/*
+** test_vreinterpret_f32_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_f32_f64, float32x2_t, float64x1_t)
+
+/*
+** test_vreinterpret_u64_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_u8, uint64x1_t, uint8x8_t)
+
+/*
+** test_vreinterpret_u64_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_s8, uint64x1_t, int8x8_t)
+
+/*
+** test_vreinterpret_u64_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_p8, uint64x1_t, poly8x8_t)
+
+/*
+** test_vreinterpret_u64_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_mf8, uint64x1_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_u64_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_u16, uint64x1_t, uint16x4_t)
+
+/*
+** test_vreinterpret_u64_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_s16, uint64x1_t, int16x4_t)
+
+/*
+** test_vreinterpret_u64_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_p16, uint64x1_t, poly16x4_t)
+
+/*
+** test_vreinterpret_u64_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_f16, uint64x1_t, float16x4_t)
+
+/*
+** test_vreinterpret_u64_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_bf16, uint64x1_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_u64_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_u32, uint64x1_t, uint32x2_t)
+
+/*
+** test_vreinterpret_u64_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_s32, uint64x1_t, int32x2_t)
+
+/*
+** test_vreinterpret_u64_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_f32, uint64x1_t, float32x2_t)
+
+/*
+** test_vreinterpret_u64_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_s64, uint64x1_t, int64x1_t)
+
+/*
+** test_vreinterpret_u64_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_p64, uint64x1_t, poly64x1_t)
+
+/*
+** test_vreinterpret_u64_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_u64_f64, uint64x1_t, float64x1_t)
+
+/*
+** test_vreinterpret_s64_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_u8, int64x1_t, uint8x8_t)
+
+/*
+** test_vreinterpret_s64_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_s8, int64x1_t, int8x8_t)
+
+/*
+** test_vreinterpret_s64_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_p8, int64x1_t, poly8x8_t)
+
+/*
+** test_vreinterpret_s64_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_mf8, int64x1_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_s64_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_u16, int64x1_t, uint16x4_t)
+
+/*
+** test_vreinterpret_s64_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_s16, int64x1_t, int16x4_t)
+
+/*
+** test_vreinterpret_s64_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_p16, int64x1_t, poly16x4_t)
+
+/*
+** test_vreinterpret_s64_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_f16, int64x1_t, float16x4_t)
+
+/*
+** test_vreinterpret_s64_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_bf16, int64x1_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_s64_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_u32, int64x1_t, uint32x2_t)
+
+/*
+** test_vreinterpret_s64_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_s32, int64x1_t, int32x2_t)
+
+/*
+** test_vreinterpret_s64_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_f32, int64x1_t, float32x2_t)
+
+/*
+** test_vreinterpret_s64_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_u64, int64x1_t, uint64x1_t)
+
+/*
+** test_vreinterpret_s64_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_p64, int64x1_t, poly64x1_t)
+
+/*
+** test_vreinterpret_s64_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_s64_f64, int64x1_t, float64x1_t)
+
+/*
+** test_vreinterpret_p64_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_u8, poly64x1_t, uint8x8_t)
+
+/*
+** test_vreinterpret_p64_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_s8, poly64x1_t, int8x8_t)
+
+/*
+** test_vreinterpret_p64_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_p8, poly64x1_t, poly8x8_t)
+
+/*
+** test_vreinterpret_p64_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_mf8, poly64x1_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_p64_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_u16, poly64x1_t, uint16x4_t)
+
+/*
+** test_vreinterpret_p64_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_s16, poly64x1_t, int16x4_t)
+
+/*
+** test_vreinterpret_p64_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_p16, poly64x1_t, poly16x4_t)
+
+/*
+** test_vreinterpret_p64_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_f16, poly64x1_t, float16x4_t)
+
+/*
+** test_vreinterpret_p64_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_bf16, poly64x1_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_p64_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_u32, poly64x1_t, uint32x2_t)
+
+/*
+** test_vreinterpret_p64_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_s32, poly64x1_t, int32x2_t)
+
+/*
+** test_vreinterpret_p64_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_f32, poly64x1_t, float32x2_t)
+
+/*
+** test_vreinterpret_p64_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_u64, poly64x1_t, uint64x1_t)
+
+/*
+** test_vreinterpret_p64_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_s64, poly64x1_t, int64x1_t)
+
+/*
+** test_vreinterpret_p64_f64:
+** ret
+*/
+TEST_UNARY (vreinterpret_p64_f64, poly64x1_t, float64x1_t)
+
+/*
+** test_vreinterpret_f64_u8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_u8, float64x1_t, uint8x8_t)
+
+/*
+** test_vreinterpret_f64_s8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_s8, float64x1_t, int8x8_t)
+
+/*
+** test_vreinterpret_f64_p8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_p8, float64x1_t, poly8x8_t)
+
+/*
+** test_vreinterpret_f64_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_mf8, float64x1_t, mfloat8x8_t)
+
+/*
+** test_vreinterpret_f64_u16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_u16, float64x1_t, uint16x4_t)
+
+/*
+** test_vreinterpret_f64_s16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_s16, float64x1_t, int16x4_t)
+
+/*
+** test_vreinterpret_f64_p16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_p16, float64x1_t, poly16x4_t)
+
+/*
+** test_vreinterpret_f64_f16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_f16, float64x1_t, float16x4_t)
+
+/*
+** test_vreinterpret_f64_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_bf16, float64x1_t, bfloat16x4_t)
+
+/*
+** test_vreinterpret_f64_u32:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_u32, float64x1_t, uint32x2_t)
+
+/*
+** test_vreinterpret_f64_s32:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_s32, float64x1_t, int32x2_t)
+
+/*
+** test_vreinterpret_f64_f32:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_f32, float64x1_t, float32x2_t)
+
+/*
+** test_vreinterpret_f64_u64:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_u64, float64x1_t, uint64x1_t)
+
+/*
+** test_vreinterpret_f64_s64:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_s64, float64x1_t, int64x1_t)
+
+/*
+** test_vreinterpret_f64_p64:
+** ret
+*/
+TEST_UNARY (vreinterpret_f64_p64, float64x1_t, poly64x1_t)
+
+/*
+** test_vreinterpretq_u8_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_s8, uint8x16_t, int8x16_t)
+
+/*
+** test_vreinterpretq_u8_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_p8, uint8x16_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_u8_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_mf8, uint8x16_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_u8_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_u16, uint8x16_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_u8_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_s16, uint8x16_t, int16x8_t)
+
+/*
+** test_vreinterpretq_u8_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_p16, uint8x16_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_u8_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_f16, uint8x16_t, float16x8_t)
+
+/*
+** test_vreinterpretq_u8_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_bf16, uint8x16_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_u8_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_u32, uint8x16_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_u8_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_s32, uint8x16_t, int32x4_t)
+
+/*
+** test_vreinterpretq_u8_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_f32, uint8x16_t, float32x4_t)
+
+/*
+** test_vreinterpretq_u8_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_u64, uint8x16_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_u8_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_s64, uint8x16_t, int64x2_t)
+
+/*
+** test_vreinterpretq_u8_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_p64, uint8x16_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_u8_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_p128, uint8x16_t, poly128_t)
+
+/*
+** test_vreinterpretq_u8_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u8_f64, uint8x16_t, float64x2_t)
+
+/*
+** test_vreinterpretq_s8_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_u8, int8x16_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_s8_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_p8, int8x16_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_s8_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_mf8, int8x16_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_s8_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_u16, int8x16_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_s8_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_s16, int8x16_t, int16x8_t)
+
+/*
+** test_vreinterpretq_s8_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_p16, int8x16_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_s8_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_f16, int8x16_t, float16x8_t)
+
+/*
+** test_vreinterpretq_s8_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_bf16, int8x16_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_s8_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_u32, int8x16_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_s8_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_s32, int8x16_t, int32x4_t)
+
+/*
+** test_vreinterpretq_s8_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_f32, int8x16_t, float32x4_t)
+
+/*
+** test_vreinterpretq_s8_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_u64, int8x16_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_s8_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_s64, int8x16_t, int64x2_t)
+
+/*
+** test_vreinterpretq_s8_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_p64, int8x16_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_s8_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_p128, int8x16_t, poly128_t)
+
+/*
+** test_vreinterpretq_s8_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s8_f64, int8x16_t, float64x2_t)
+
+/*
+** test_vreinterpretq_p8_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_u8, poly8x16_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_p8_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_s8, poly8x16_t, int8x16_t)
+
+/*
+** test_vreinterpretq_p8_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_mf8, poly8x16_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_p8_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_u16, poly8x16_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_p8_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_s16, poly8x16_t, int16x8_t)
+
+/*
+** test_vreinterpretq_p8_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_p16, poly8x16_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_p8_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_f16, poly8x16_t, float16x8_t)
+
+/*
+** test_vreinterpretq_p8_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_bf16, poly8x16_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_p8_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_u32, poly8x16_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_p8_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_s32, poly8x16_t, int32x4_t)
+
+/*
+** test_vreinterpretq_p8_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_f32, poly8x16_t, float32x4_t)
+
+/*
+** test_vreinterpretq_p8_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_u64, poly8x16_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_p8_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_s64, poly8x16_t, int64x2_t)
+
+/*
+** test_vreinterpretq_p8_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_p64, poly8x16_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_p8_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_p128, poly8x16_t, poly128_t)
+
+/*
+** test_vreinterpretq_p8_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p8_f64, poly8x16_t, float64x2_t)
+
+/*
+** test_vreinterpretq_mf8_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_u8, mfloat8x16_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_mf8_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_s8, mfloat8x16_t, int8x16_t)
+
+/*
+** test_vreinterpretq_mf8_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_p8, mfloat8x16_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_mf8_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_u16, mfloat8x16_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_mf8_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_s16, mfloat8x16_t, int16x8_t)
+
+/*
+** test_vreinterpretq_mf8_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_p16, mfloat8x16_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_mf8_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_f16, mfloat8x16_t, float16x8_t)
+
+/*
+** test_vreinterpretq_mf8_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_bf16, mfloat8x16_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_mf8_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_u32, mfloat8x16_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_mf8_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_s32, mfloat8x16_t, int32x4_t)
+
+/*
+** test_vreinterpretq_mf8_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_f32, mfloat8x16_t, float32x4_t)
+
+/*
+** test_vreinterpretq_mf8_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_u64, mfloat8x16_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_mf8_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_s64, mfloat8x16_t, int64x2_t)
+
+/*
+** test_vreinterpretq_mf8_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_p64, mfloat8x16_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_mf8_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_p128, mfloat8x16_t, poly128_t)
+
+/*
+** test_vreinterpretq_mf8_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_mf8_f64, mfloat8x16_t, float64x2_t)
+
+/*
+** test_vreinterpretq_u16_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_u8, uint16x8_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_u16_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_s8, uint16x8_t, int8x16_t)
+
+/*
+** test_vreinterpretq_u16_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_p8, uint16x8_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_u16_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_mf8, uint16x8_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_u16_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_s16, uint16x8_t, int16x8_t)
+
+/*
+** test_vreinterpretq_u16_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_p16, uint16x8_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_u16_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_f16, uint16x8_t, float16x8_t)
+
+/*
+** test_vreinterpretq_u16_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_bf16, uint16x8_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_u16_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_u32, uint16x8_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_u16_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_s32, uint16x8_t, int32x4_t)
+
+/*
+** test_vreinterpretq_u16_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_f32, uint16x8_t, float32x4_t)
+
+/*
+** test_vreinterpretq_u16_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_u64, uint16x8_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_u16_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_s64, uint16x8_t, int64x2_t)
+
+/*
+** test_vreinterpretq_u16_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_p64, uint16x8_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_u16_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_p128, uint16x8_t, poly128_t)
+
+/*
+** test_vreinterpretq_u16_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u16_f64, uint16x8_t, float64x2_t)
+
+/*
+** test_vreinterpretq_s16_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_u8, int16x8_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_s16_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_s8, int16x8_t, int8x16_t)
+
+/*
+** test_vreinterpretq_s16_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_p8, int16x8_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_s16_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_mf8, int16x8_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_s16_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_u16, int16x8_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_s16_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_p16, int16x8_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_s16_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_f16, int16x8_t, float16x8_t)
+
+/*
+** test_vreinterpretq_s16_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_bf16, int16x8_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_s16_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_u32, int16x8_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_s16_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_s32, int16x8_t, int32x4_t)
+
+/*
+** test_vreinterpretq_s16_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_f32, int16x8_t, float32x4_t)
+
+/*
+** test_vreinterpretq_s16_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_u64, int16x8_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_s16_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_s64, int16x8_t, int64x2_t)
+
+/*
+** test_vreinterpretq_s16_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_p64, int16x8_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_s16_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_p128, int16x8_t, poly128_t)
+
+/*
+** test_vreinterpretq_s16_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s16_f64, int16x8_t, float64x2_t)
+
+/*
+** test_vreinterpretq_p16_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_u8, poly16x8_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_p16_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_s8, poly16x8_t, int8x16_t)
+
+/*
+** test_vreinterpretq_p16_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_p8, poly16x8_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_p16_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_mf8, poly16x8_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_p16_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_u16, poly16x8_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_p16_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_s16, poly16x8_t, int16x8_t)
+
+/*
+** test_vreinterpretq_p16_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_f16, poly16x8_t, float16x8_t)
+
+/*
+** test_vreinterpretq_p16_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_bf16, poly16x8_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_p16_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_u32, poly16x8_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_p16_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_s32, poly16x8_t, int32x4_t)
+
+/*
+** test_vreinterpretq_p16_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_f32, poly16x8_t, float32x4_t)
+
+/*
+** test_vreinterpretq_p16_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_u64, poly16x8_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_p16_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_s64, poly16x8_t, int64x2_t)
+
+/*
+** test_vreinterpretq_p16_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_p64, poly16x8_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_p16_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_p128, poly16x8_t, poly128_t)
+
+/*
+** test_vreinterpretq_p16_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p16_f64, poly16x8_t, float64x2_t)
+
+/*
+** test_vreinterpretq_f16_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_u8, float16x8_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_f16_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_s8, float16x8_t, int8x16_t)
+
+/*
+** test_vreinterpretq_f16_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_p8, float16x8_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_f16_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_mf8, float16x8_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_f16_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_u16, float16x8_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_f16_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_s16, float16x8_t, int16x8_t)
+
+/*
+** test_vreinterpretq_f16_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_p16, float16x8_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_f16_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_bf16, float16x8_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_f16_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_u32, float16x8_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_f16_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_s32, float16x8_t, int32x4_t)
+
+/*
+** test_vreinterpretq_f16_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_f32, float16x8_t, float32x4_t)
+
+/*
+** test_vreinterpretq_f16_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_u64, float16x8_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_f16_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_s64, float16x8_t, int64x2_t)
+
+/*
+** test_vreinterpretq_f16_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_p64, float16x8_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_f16_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_p128, float16x8_t, poly128_t)
+
+/*
+** test_vreinterpretq_f16_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f16_f64, float16x8_t, float64x2_t)
+
+/*
+** test_vreinterpretq_bf16_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_u8, bfloat16x8_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_bf16_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_s8, bfloat16x8_t, int8x16_t)
+
+/*
+** test_vreinterpretq_bf16_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_p8, bfloat16x8_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_bf16_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_mf8, bfloat16x8_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_bf16_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_u16, bfloat16x8_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_bf16_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_s16, bfloat16x8_t, int16x8_t)
+
+/*
+** test_vreinterpretq_bf16_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_p16, bfloat16x8_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_bf16_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_f16, bfloat16x8_t, float16x8_t)
+
+/*
+** test_vreinterpretq_bf16_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_u32, bfloat16x8_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_bf16_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_s32, bfloat16x8_t, int32x4_t)
+
+/*
+** test_vreinterpretq_bf16_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_f32, bfloat16x8_t, float32x4_t)
+
+/*
+** test_vreinterpretq_bf16_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_u64, bfloat16x8_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_bf16_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_s64, bfloat16x8_t, int64x2_t)
+
+/*
+** test_vreinterpretq_bf16_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_p64, bfloat16x8_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_bf16_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_p128, bfloat16x8_t, poly128_t)
+
+/*
+** test_vreinterpretq_bf16_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_bf16_f64, bfloat16x8_t, float64x2_t)
+
+/*
+** test_vreinterpretq_u32_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_u8, uint32x4_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_u32_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_s8, uint32x4_t, int8x16_t)
+
+/*
+** test_vreinterpretq_u32_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_p8, uint32x4_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_u32_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_mf8, uint32x4_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_u32_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_u16, uint32x4_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_u32_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_s16, uint32x4_t, int16x8_t)
+
+/*
+** test_vreinterpretq_u32_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_p16, uint32x4_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_u32_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_f16, uint32x4_t, float16x8_t)
+
+/*
+** test_vreinterpretq_u32_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_bf16, uint32x4_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_u32_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_s32, uint32x4_t, int32x4_t)
+
+/*
+** test_vreinterpretq_u32_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_f32, uint32x4_t, float32x4_t)
+
+/*
+** test_vreinterpretq_u32_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_u64, uint32x4_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_u32_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_s64, uint32x4_t, int64x2_t)
+
+/*
+** test_vreinterpretq_u32_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_p64, uint32x4_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_u32_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_p128, uint32x4_t, poly128_t)
+
+/*
+** test_vreinterpretq_u32_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u32_f64, uint32x4_t, float64x2_t)
+
+/*
+** test_vreinterpretq_s32_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_u8, int32x4_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_s32_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_s8, int32x4_t, int8x16_t)
+
+/*
+** test_vreinterpretq_s32_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_p8, int32x4_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_s32_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_mf8, int32x4_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_s32_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_u16, int32x4_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_s32_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_s16, int32x4_t, int16x8_t)
+
+/*
+** test_vreinterpretq_s32_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_p16, int32x4_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_s32_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_f16, int32x4_t, float16x8_t)
+
+/*
+** test_vreinterpretq_s32_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_bf16, int32x4_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_s32_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_u32, int32x4_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_s32_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_f32, int32x4_t, float32x4_t)
+
+/*
+** test_vreinterpretq_s32_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_u64, int32x4_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_s32_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_s64, int32x4_t, int64x2_t)
+
+/*
+** test_vreinterpretq_s32_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_p64, int32x4_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_s32_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_p128, int32x4_t, poly128_t)
+
+/*
+** test_vreinterpretq_s32_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s32_f64, int32x4_t, float64x2_t)
+
+/*
+** test_vreinterpretq_f32_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_u8, float32x4_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_f32_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_s8, float32x4_t, int8x16_t)
+
+/*
+** test_vreinterpretq_f32_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_p8, float32x4_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_f32_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_mf8, float32x4_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_f32_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_u16, float32x4_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_f32_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_s16, float32x4_t, int16x8_t)
+
+/*
+** test_vreinterpretq_f32_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_p16, float32x4_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_f32_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_f16, float32x4_t, float16x8_t)
+
+/*
+** test_vreinterpretq_f32_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_bf16, float32x4_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_f32_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_u32, float32x4_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_f32_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_s32, float32x4_t, int32x4_t)
+
+/*
+** test_vreinterpretq_f32_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_u64, float32x4_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_f32_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_s64, float32x4_t, int64x2_t)
+
+/*
+** test_vreinterpretq_f32_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_p64, float32x4_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_f32_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_p128, float32x4_t, poly128_t)
+
+/*
+** test_vreinterpretq_f32_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f32_f64, float32x4_t, float64x2_t)
+
+/*
+** test_vreinterpretq_u64_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_u8, uint64x2_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_u64_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_s8, uint64x2_t, int8x16_t)
+
+/*
+** test_vreinterpretq_u64_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_p8, uint64x2_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_u64_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_mf8, uint64x2_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_u64_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_u16, uint64x2_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_u64_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_s16, uint64x2_t, int16x8_t)
+
+/*
+** test_vreinterpretq_u64_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_p16, uint64x2_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_u64_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_f16, uint64x2_t, float16x8_t)
+
+/*
+** test_vreinterpretq_u64_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_bf16, uint64x2_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_u64_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_u32, uint64x2_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_u64_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_s32, uint64x2_t, int32x4_t)
+
+/*
+** test_vreinterpretq_u64_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_f32, uint64x2_t, float32x4_t)
+
+/*
+** test_vreinterpretq_u64_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_s64, uint64x2_t, int64x2_t)
+
+/*
+** test_vreinterpretq_u64_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_p64, uint64x2_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_u64_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_p128, uint64x2_t, poly128_t)
+
+/*
+** test_vreinterpretq_u64_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_u64_f64, uint64x2_t, float64x2_t)
+
+/*
+** test_vreinterpretq_s64_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_u8, int64x2_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_s64_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_s8, int64x2_t, int8x16_t)
+
+/*
+** test_vreinterpretq_s64_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_p8, int64x2_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_s64_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_mf8, int64x2_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_s64_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_u16, int64x2_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_s64_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_s16, int64x2_t, int16x8_t)
+
+/*
+** test_vreinterpretq_s64_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_p16, int64x2_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_s64_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_f16, int64x2_t, float16x8_t)
+
+/*
+** test_vreinterpretq_s64_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_bf16, int64x2_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_s64_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_u32, int64x2_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_s64_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_s32, int64x2_t, int32x4_t)
+
+/*
+** test_vreinterpretq_s64_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_f32, int64x2_t, float32x4_t)
+
+/*
+** test_vreinterpretq_s64_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_u64, int64x2_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_s64_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_p64, int64x2_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_s64_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_p128, int64x2_t, poly128_t)
+
+/*
+** test_vreinterpretq_s64_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_s64_f64, int64x2_t, float64x2_t)
+
+/*
+** test_vreinterpretq_p64_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_u8, poly64x2_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_p64_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_s8, poly64x2_t, int8x16_t)
+
+/*
+** test_vreinterpretq_p64_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_p8, poly64x2_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_p64_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_mf8, poly64x2_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_p64_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_u16, poly64x2_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_p64_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_s16, poly64x2_t, int16x8_t)
+
+/*
+** test_vreinterpretq_p64_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_p16, poly64x2_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_p64_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_f16, poly64x2_t, float16x8_t)
+
+/*
+** test_vreinterpretq_p64_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_bf16, poly64x2_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_p64_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_u32, poly64x2_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_p64_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_s32, poly64x2_t, int32x4_t)
+
+/*
+** test_vreinterpretq_p64_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_f32, poly64x2_t, float32x4_t)
+
+/*
+** test_vreinterpretq_p64_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_u64, poly64x2_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_p64_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_s64, poly64x2_t, int64x2_t)
+
+/*
+** test_vreinterpretq_p64_p128: { xfail *-*-* }
+** fmov d0, x0
+** mov v0\.d\[1\], x1
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_p128, poly64x2_t, poly128_t)
+
+/*
+** test_vreinterpretq_p64_f64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_p64_f64, poly64x2_t, float64x2_t)
+
+/*
+** test_vreinterpretq_p128_u8: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_u8, poly128_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_p128_s8: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_s8, poly128_t, int8x16_t)
+
+/*
+** test_vreinterpretq_p128_p8: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_p8, poly128_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_p128_mf8: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_mf8, poly128_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_p128_u16: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_u16, poly128_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_p128_s16: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_s16, poly128_t, int16x8_t)
+
+/*
+** test_vreinterpretq_p128_p16: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_p16, poly128_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_p128_f16: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_f16, poly128_t, float16x8_t)
+
+/*
+** test_vreinterpretq_p128_bf16: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_bf16, poly128_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_p128_u32: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_u32, poly128_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_p128_s32: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_s32, poly128_t, int32x4_t)
+
+/*
+** test_vreinterpretq_p128_f32: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_f32, poly128_t, float32x4_t)
+
+/*
+** test_vreinterpretq_p128_u64: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_u64, poly128_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_p128_s64: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_s64, poly128_t, int64x2_t)
+
+/*
+** test_vreinterpretq_p128_p64: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_p64, poly128_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_p128_f64: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_p128_f64, poly128_t, float64x2_t)
+
+/*
+** test_vreinterpretq_f64_u8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_u8, float64x2_t, uint8x16_t)
+
+/*
+** test_vreinterpretq_f64_s8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_s8, float64x2_t, int8x16_t)
+
+/*
+** test_vreinterpretq_f64_p8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_p8, float64x2_t, poly8x16_t)
+
+/*
+** test_vreinterpretq_f64_mf8:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_mf8, float64x2_t, mfloat8x16_t)
+
+/*
+** test_vreinterpretq_f64_u16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_u16, float64x2_t, uint16x8_t)
+
+/*
+** test_vreinterpretq_f64_s16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_s16, float64x2_t, int16x8_t)
+
+/*
+** test_vreinterpretq_f64_p16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_p16, float64x2_t, poly16x8_t)
+
+/*
+** test_vreinterpretq_f64_f16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_f16, float64x2_t, float16x8_t)
+
+/*
+** test_vreinterpretq_f64_bf16:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_bf16, float64x2_t, bfloat16x8_t)
+
+/*
+** test_vreinterpretq_f64_u32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_u32, float64x2_t, uint32x4_t)
+
+/*
+** test_vreinterpretq_f64_s32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_s32, float64x2_t, int32x4_t)
+
+/*
+** test_vreinterpretq_f64_f32:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_f32, float64x2_t, float32x4_t)
+
+/*
+** test_vreinterpretq_f64_u64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_u64, float64x2_t, uint64x2_t)
+
+/*
+** test_vreinterpretq_f64_s64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_s64, float64x2_t, int64x2_t)
+
+/*
+** test_vreinterpretq_f64_p64:
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_p64, float64x2_t, poly64x2_t)
+
+/*
+** test_vreinterpretq_f64_p128: { xfail *-*-* }
+** fmov x0, d0
+** mov x1, v0\.d\[1\]
+** ret
+*/
+TEST_UNARY (vreinterpretq_f64_p128, float64x2_t, poly128_t)
--
2.54.0