https://gcc.gnu.org/g:de97b51852881db9edc16b41faa8d0dfe7eb3276
commit r17-2023-gde97b51852881db9edc16b41faa8d0dfe7eb3276 Author: Karl Meakin <[email protected]> Date: Mon Apr 20 12:08:19 2026 +0000 aarch64: Port NEON reinterpret intrinsics to pragma-based framework 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. Diff: --- gcc/config/aarch64/aarch64-acle-builtins.h | 66 + gcc/config/aarch64/aarch64-builtins.cc | 163 - gcc/config/aarch64/aarch64-neon-builtins-base.cc | 15 + gcc/config/aarch64/aarch64-neon-builtins-base.def | 6 + .../gcc.target/aarch64/neon/vreinterpret.c | 3143 ++++++++++++++++++++ 5 files changed, 3230 insertions(+), 163 deletions(-) diff --git a/gcc/config/aarch64/aarch64-acle-builtins.h b/gcc/config/aarch64/aarch64-acle-builtins.h index e4357bf74006..d330ac7897a7 100644 --- a/gcc/config/aarch64/aarch64-acle-builtins.h +++ b/gcc/config/aarch64/aarch64-acle-builtins.h @@ -1855,6 +1855,70 @@ function_expander::result_mode () const 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 b6bae9f3b5ba..0096285aabcb 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -590,104 +590,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 \ @@ -734,9 +636,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, @@ -775,7 +674,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, @@ -876,22 +774,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]; @@ -1405,44 +1287,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) { @@ -1870,7 +1714,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 (); } @@ -4646,10 +4489,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 @@ -4666,8 +4505,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 ea6f67071850..9e61ba7688ce 100644 --- a/gcc/config/aarch64/aarch64-neon-builtins-base.cc +++ b/gcc/config/aarch64/aarch64-neon-builtins-base.cc @@ -709,6 +709,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 (vget_lane, gimple_get_lane,) NEON_FUNCTION (vgetq_lane, gimple_get_lane,) diff --git a/gcc/config/aarch64/aarch64-neon-builtins-base.def b/gcc/config/aarch64/aarch64-neon-builtins-base.def index 78b0a39df07b..7257f59bbc56 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)
