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 be6a7e9030f7..31d4fd7fc8f2 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 1240fc1a2dd3..719fda5b6d97 100644
--- a/gcc/config/aarch64/aarch64-neon-builtins-base.cc
+++ b/gcc/config/aarch64/aarch64-neon-builtins-base.cc
@@ -653,6 +653,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

Reply via email to