diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
index c21476d7ae963450b12efa24418ce4004a3c74bf..57aaff3b1d5df80b1107f4a037498af714516ec9 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -55,6 +55,7 @@
 #define v2si_UP  E_V2SImode
 #define v2sf_UP  E_V2SFmode
 #define v1df_UP  E_V1DFmode
+#define v1di_UP  E_V1DImode
 #define di_UP    E_DImode
 #define df_UP    E_DFmode
 #define v16qi_UP E_V16QImode
@@ -126,6 +127,63 @@
 #define v4x2df_UP  E_V4x2DFmode
 #define UP(X) X##_UP
 
+#define MODE_d_bf16 E_V4BFmode
+#define MODE_d_f16 E_V4HFmode
+#define MODE_d_f32 E_V2SFmode
+#define MODE_d_f64 E_V1DFmode
+#define MODE_d_s8 E_V8QImode
+#define MODE_d_s16 E_V4HImode
+#define MODE_d_s32 E_V2SImode
+#define MODE_d_s64 E_V1DImode
+#define MODE_d_u8 E_V8QImode
+#define MODE_d_u16 E_V4HImode
+#define MODE_d_u32 E_V2SImode
+#define MODE_d_u64 E_V1DImode
+#define MODE_d_p8 E_V8QImode
+#define MODE_d_p16 E_V4HImode
+#define MODE_d_p64 E_V1DImode
+#define MODE_q_bf16 E_V8BFmode
+#define MODE_q_f16 E_V8HFmode
+#define MODE_q_f32 E_V4SFmode
+#define MODE_q_f64 E_V2DFmode
+#define MODE_q_s8 E_V16QImode
+#define MODE_q_s16 E_V8HImode
+#define MODE_q_s32 E_V4SImode
+#define MODE_q_s64 E_V2DImode
+#define MODE_q_u8 E_V16QImode
+#define MODE_q_u16 E_V8HImode
+#define MODE_q_u32 E_V4SImode
+#define MODE_q_u64 E_V2DImode
+#define MODE_q_p8 E_V16QImode
+#define MODE_q_p16 E_V8HImode
+#define MODE_q_p64 E_V2DImode
+#define MODE_q_p128 E_TImode
+
+#define QUAL_bf16 qualifier_none
+#define QUAL_f16 qualifier_none
+#define QUAL_f32 qualifier_none
+#define QUAL_f64 qualifier_none
+#define QUAL_s8 qualifier_none
+#define QUAL_s16 qualifier_none
+#define QUAL_s32 qualifier_none
+#define QUAL_s64 qualifier_none
+#define QUAL_u8 qualifier_unsigned
+#define QUAL_u16 qualifier_unsigned
+#define QUAL_u32 qualifier_unsigned
+#define QUAL_u64 qualifier_unsigned
+#define QUAL_p8 qualifier_poly
+#define QUAL_p16 qualifier_poly
+#define QUAL_p64 qualifier_poly
+#define QUAL_p128 qualifier_poly
+
+#define LENGTH_d ""
+#define LENGTH_q "q"
+
+#define SIMD_INTR_MODE(suffix, length) MODE_##length##_##suffix
+#define SIMD_INTR_QUAL(suffix) QUAL_##suffix
+#define SIMD_INTR_LENGTH_CHAR(length) LENGTH_##length
+
+
 #define SIMD_MAX_BUILTIN_ARGS 5
 
 enum aarch64_type_qualifiers
@@ -523,6 +581,99 @@ static aarch64_simd_builtin_datum aarch64_simd_builtin_data[] = {
   FCMLA_LANEQ_BUILTIN (180, v4hf, fcmla_laneq, V4HF, true) \
   FCMLA_LANEQ_BUILTIN (270, v4hf, fcmla_laneq, V4HF, true) \
 
+
+/* vreinterpret intrinsics are defined for any pair of element types.
+   {     _bf16           }   {     _bf16           } (if bf16 is supported)
+   {      _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 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, 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 (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       }
+   { _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, 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 (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
+
 typedef struct
 {
   const char *name;
@@ -541,12 +692,27 @@ typedef struct
   bool lane;
 } aarch64_fcmla_laneq_builtin_datum;
 
+/* Hold information about how to declare SIMD intrinsics.  */
+typedef struct
+{
+  const char *name;
+  unsigned int fcode;
+  unsigned int op_count;
+  machine_mode op_modes[SIMD_MAX_BUILTIN_ARGS];
+  enum aarch64_type_qualifiers qualifiers[SIMD_MAX_BUILTIN_ARGS];
+  unsigned int flags;
+  bool skip;
+} aarch64_simd_intrinsic_datum;
+
 #define CRC32_BUILTIN(N, M) \
   AARCH64_BUILTIN_##N,
 
 #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,
@@ -580,6 +746,8 @@ enum aarch64_builtins
   AARCH64_CRC32_BUILTIN_BASE,
   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,
@@ -636,6 +804,22 @@ 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_AUTO_FP, \
+   !strcmp(#A, #B) \
+  },
+
+static aarch64_simd_intrinsic_datum aarch64_simd_intrinsic_data[] = {
+  AARCH64_SIMD_VREINTERPRET_BUILTINS
+};
+
+
 #undef CRC32_BUILTIN
 
 static GTY(()) tree aarch64_builtin_decls[AARCH64_BUILTIN_MAX];
@@ -1127,6 +1311,58 @@ 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)
+    {
+      aarch64_simd_intrinsic_datum* 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];
+
+	  /* For pointers, we want a pointer to the basic type
+	     of the vector.  */
+	  if (qualifiers & qualifier_pointer && VECTOR_MODE_P (op_mode))
+	    op_mode = GET_MODE_INNER (op_mode);
+
+	  tree eltype = aarch64_simd_builtin_type
+		     (op_mode,
+		      (qualifiers & qualifier_unsigned) != 0,
+		      (qualifiers & qualifier_poly) != 0);
+	  gcc_assert (eltype != NULL);
+
+	  /* Add qualifiers.  */
+	  if (qualifiers & qualifier_const)
+	    eltype = build_qualified_type (eltype, TYPE_QUAL_CONST);
+
+	  if (qualifiers & qualifier_pointer)
+	      eltype = build_pointer_type (eltype);
+
+	  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 (FLAG_AUTO_FP, 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)
 {
@@ -1346,7 +1582,10 @@ aarch64_simd_switcher::~aarch64_simd_switcher ()
   aarch64_isa_flags = m_old_isa_flags;
 }
 
-/* Implement #pragma GCC aarch64 "arm_neon.h".  */
+/* Implement #pragma GCC aarch64 "arm_neon.h".
+
+   The types and functions defined here need to be available internally
+   during LTO as well.  */
 void
 handle_arm_neon_h (void)
 {
@@ -1359,6 +1598,7 @@ handle_arm_neon_h (void)
 	register_tuple_type (count, i);
 
   aarch64_init_simd_builtin_functions (true);
+  aarch64_init_simd_intrinsics ();
 }
 
 void
@@ -2709,6 +2949,11 @@ 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
@@ -2725,6 +2970,8 @@ 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-modes.def b/gcc/config/aarch64/aarch64-modes.def
index 8f399225a8048d93108e33e9d49c736aeb5612ce..d3c9b74434cd2c0d0cb1a2fd26af8c0bf38a4cfa 100644
--- a/gcc/config/aarch64/aarch64-modes.def
+++ b/gcc/config/aarch64/aarch64-modes.def
@@ -70,6 +70,7 @@ VECTOR_MODES (INT, 8);        /*       V8QI V4HI V2SI.  */
 VECTOR_MODES (INT, 16);       /* V16QI V8HI V4SI V2DI.  */
 VECTOR_MODES (FLOAT, 8);      /*                 V2SF.  */
 VECTOR_MODES (FLOAT, 16);     /*            V4SF V2DF.  */
+VECTOR_MODE (INT, DI, 1);     /*                 V1DI.  */
 VECTOR_MODE (FLOAT, DF, 1);   /*                 V1DF.  */
 VECTOR_MODE (FLOAT, HF, 2);   /*                 V2HF.  */
 
diff --git a/gcc/config/aarch64/aarch64-simd-builtin-types.def b/gcc/config/aarch64/aarch64-simd-builtin-types.def
index 248e51e96549fb640817d79c099a3f5e62c71317..40545581408e2ee2be84f08abb5801058c4ea42e 100644
--- a/gcc/config/aarch64/aarch64-simd-builtin-types.def
+++ b/gcc/config/aarch64/aarch64-simd-builtin-types.def
@@ -24,7 +24,7 @@
   ENTRY (Int16x8_t, V8HI, none, 11)
   ENTRY (Int32x2_t, V2SI, none, 11)
   ENTRY (Int32x4_t, V4SI, none, 11)
-  ENTRY (Int64x1_t, DI, none, 11)
+  ENTRY (Int64x1_t, V1DI, none, 11)
   ENTRY (Int64x2_t, V2DI, none, 11)
   ENTRY (Uint8x8_t, V8QI, unsigned, 11)
   ENTRY (Uint8x16_t, V16QI, unsigned, 12)
@@ -32,7 +32,7 @@
   ENTRY (Uint16x8_t, V8HI, unsigned, 12)
   ENTRY (Uint32x2_t, V2SI, unsigned, 12)
   ENTRY (Uint32x4_t, V4SI, unsigned, 12)
-  ENTRY (Uint64x1_t, DI, unsigned, 12)
+  ENTRY (Uint64x1_t, V1DI, unsigned, 12)
   ENTRY (Uint64x2_t, V2DI, unsigned, 12)
   ENTRY (Poly8_t, QI, poly, 9)
   ENTRY (Poly16_t, HI, poly, 10)
@@ -42,7 +42,7 @@
   ENTRY (Poly8x16_t, V16QI, poly, 12)
   ENTRY (Poly16x4_t, V4HI, poly, 12)
   ENTRY (Poly16x8_t, V8HI, poly, 12)
-  ENTRY (Poly64x1_t, DI, poly, 12)
+  ENTRY (Poly64x1_t, V1DI, poly, 12)
   ENTRY (Poly64x2_t, V2DI, poly, 12)
   ENTRY (Float16x4_t, V4HF, none, 13)
   ENTRY (Float16x8_t, V8HF, none, 13)
diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
index a00e1c6ef8d6b43d8b1a0fe4701e6b8c1f0f622f..a3f8f20e5fb20eeb9b9f48a27d83343638ba3c93 100644
--- a/gcc/config/aarch64/aarch64-simd.md
+++ b/gcc/config/aarch64/aarch64-simd.md
@@ -8039,6 +8039,20 @@
   DONE;
 })
 
+;; And same for V1DI (this should probably be merged with the above pattern)
+(define_expand "vec_extractv2div1di"
+  [(match_operand:V1DI 0 "register_operand")
+   (match_operand:V2DI 1 "register_operand")
+   (match_operand 2 "immediate_operand")]
+  "TARGET_SIMD"
+{
+  /* V1DI is rarely used by other patterns, so it should be better to hide
+     it in a subreg destination of a normal DI op.  */
+  rtx scalar0 = gen_lowpart (DImode, operands[0]);
+  emit_insn (gen_vec_extractv2didi (scalar0, operands[1], operands[2]));
+  DONE;
+})
+
 ;; aes
 
 (define_insn "aarch64_crypto_aes<aes_op>v16qi"
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index f650abbc4ce49cf0947049931f86bad1130c3428..278910af0a38c0203a962d34c6792191f0fe9e31 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -3568,7 +3568,7 @@ aarch64_classify_vector_mode (machine_mode mode)
     case E_V8QImode:
     case E_V4HImode:
     case E_V2SImode:
-    /* ...E_V1DImode doesn't exist.  */
+    case E_V1DImode:
     case E_V4HFmode:
     case E_V4BFmode:
     case E_V2SFmode:
diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h
index 85d03c58d2a98c1b8b84f007a82bb976601b424e..cf6af728ca99dae1cb6ab647466cfec32f7e913e 100644
--- a/gcc/config/aarch64/arm_neon.h
+++ b/gcc/config/aarch64/arm_neon.h
@@ -2827,2753 +2827,6 @@ vgetq_lane_u64 (uint64x2_t __a, const int __b)
   return __aarch64_vget_lane_any (__a, __b);
 }
 
-/* vreinterpret  */
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_f16 (float16x4_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_f64 (float64x1_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_s8 (int8x8_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_s16 (int16x4_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_s32 (int32x2_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_s64 (int64x1_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_f32 (float32x2_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_u8 (uint8x8_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_u16 (uint16x4_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_u32 (uint32x2_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_u64 (uint64x1_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_p16 (poly16x4_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_p64 (poly64x1_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_f64 (float64x2_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_s8 (int8x16_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_s16 (int16x8_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_s32 (int32x4_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_s64 (int64x2_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_f16 (float16x8_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_f32 (float32x4_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_u8 (uint8x16_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_u16 (uint16x8_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_u32 (uint32x4_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_u64 (uint64x2_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_p16 (poly16x8_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_p64 (poly64x2_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_p128 (poly128_t __a)
-{
-  return (poly8x16_t)__a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_f16 (float16x4_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_f64 (float64x1_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_s8 (int8x8_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_s16 (int16x4_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_s32 (int32x2_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_s64 (int64x1_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_f32 (float32x2_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_u8 (uint8x8_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_u16 (uint16x4_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_u32 (uint32x2_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_u64 (uint64x1_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_p8 (poly8x8_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_p64 (poly64x1_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_f64 (float64x2_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_s8 (int8x16_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_s16 (int16x8_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_s32 (int32x4_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_s64 (int64x2_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_f16 (float16x8_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_f32 (float32x4_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_u8 (uint8x16_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_u16 (uint16x8_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_u32 (uint32x4_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_u64 (uint64x2_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_p8 (poly8x16_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_p64 (poly64x2_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_p128 (poly128_t __a)
-{
-  return (poly16x8_t)__a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_f16 (float16x4_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_f64 (float64x1_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_s8 (int8x8_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_s16 (int16x4_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_s32 (int32x2_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_s64 (int64x1_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_f32 (float32x2_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_u8 (uint8x8_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_u16 (uint16x4_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_u32 (uint32x2_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_u64 (uint64x1_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_p8 (poly8x8_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_p16 (poly16x4_t __a)
-{
-  return (poly64x1_t)__a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_f64 (float64x2_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_s8 (int8x16_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_s16 (int16x8_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_s32 (int32x4_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_s64 (int64x2_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_f16 (float16x8_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_f32 (float32x4_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_p128 (poly128_t __a)
-{
-  return (poly64x2_t)__a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_u8 (uint8x16_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_u16 (uint16x8_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_p16 (poly16x8_t __a)
-{
-  return (poly64x2_t)__a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_u32 (uint32x4_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_u64 (uint64x2_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_p8 (poly8x16_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_p8 (poly8x16_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_p16 (poly16x8_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_f16 (float16x8_t __a)
-{
-  return (poly128_t) __a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_f32 (float32x4_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_p64 (poly64x2_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_s64 (int64x2_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_u64 (uint64x2_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_s8 (int8x16_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_s16 (int16x8_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_s32 (int32x4_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_u8 (uint8x16_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_u16 (uint16x8_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_u32 (uint32x4_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_f64 (float64x1_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_s8 (int8x8_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_s16 (int16x4_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_s32 (int32x2_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_s64 (int64x1_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_f32 (float32x2_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_u8 (uint8x8_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_u16 (uint16x4_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_u32 (uint32x2_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_u64 (uint64x1_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_p8 (poly8x8_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_p16 (poly16x4_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_p64 (poly64x1_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_f64 (float64x2_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_s8 (int8x16_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_s16 (int16x8_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_s32 (int32x4_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_s64 (int64x2_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_f32 (float32x4_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_u8 (uint8x16_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_u16 (uint16x8_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_u32 (uint32x4_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_u64 (uint64x2_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_p8 (poly8x16_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_p128 (poly128_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_p16 (poly16x8_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_p64 (poly64x2_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_f16 (float16x4_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_f64 (float64x1_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_s8 (int8x8_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_s16 (int16x4_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_s32 (int32x2_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_s64 (int64x1_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_u8 (uint8x8_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_u16 (uint16x4_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_u32 (uint32x2_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_u64 (uint64x1_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_p8 (poly8x8_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_p16 (poly16x4_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_p64 (poly64x1_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_f16 (float16x8_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_f64 (float64x2_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_s8 (int8x16_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_s16 (int16x8_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_s32 (int32x4_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_s64 (int64x2_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_u8 (uint8x16_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_u16 (uint16x8_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_u32 (uint32x4_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_u64 (uint64x2_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_p8 (poly8x16_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_p16 (poly16x8_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_p64 (poly64x2_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_p128 (poly128_t __a)
-{
-  return (float32x4_t)__a;
-}
-
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_f16 (float16x4_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_f32 (float32x2_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_p8 (poly8x8_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_p16 (poly16x4_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_p64 (poly64x1_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_s8 (int8x8_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_s16 (int16x4_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_s32 (int32x2_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_s64 (int64x1_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_u8 (uint8x8_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_u16 (uint16x4_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_u32 (uint32x2_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_u64 (uint64x1_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_f16 (float16x8_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_f32 (float32x4_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_p8 (poly8x16_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_p16 (poly16x8_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_p64 (poly64x2_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_s8 (int8x16_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_s16 (int16x8_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_s32 (int32x4_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_s64 (int64x2_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_u8 (uint8x16_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_u16 (uint16x8_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_u32 (uint32x4_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_u64 (uint64x2_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_f16 (float16x4_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_f64 (float64x1_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_s8 (int8x8_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_s16 (int16x4_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_s32 (int32x2_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_f32 (float32x2_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_u8 (uint8x8_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_u16 (uint16x4_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_u32 (uint32x2_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_u64 (uint64x1_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_p8 (poly8x8_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_p16 (poly16x4_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_p64 (poly64x1_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_f64 (float64x2_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_s8 (int8x16_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_s16 (int16x8_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_s32 (int32x4_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_f16 (float16x8_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_f32 (float32x4_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_u8 (uint8x16_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_u16 (uint16x8_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_u32 (uint32x4_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_u64 (uint64x2_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_p8 (poly8x16_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_p16 (poly16x8_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_p64 (poly64x2_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_p128 (poly128_t __a)
-{
-  return (int64x2_t)__a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_f16 (float16x4_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_f64 (float64x1_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_s8 (int8x8_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_s16 (int16x4_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_s32 (int32x2_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_s64 (int64x1_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_f32 (float32x2_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_u8 (uint8x8_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_u16 (uint16x4_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_u32 (uint32x2_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_p8 (poly8x8_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_p16 (poly16x4_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_p64 (poly64x1_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_f64 (float64x2_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_s8 (int8x16_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_s16 (int16x8_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_s32 (int32x4_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_s64 (int64x2_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_f16 (float16x8_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_f32 (float32x4_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_u8 (uint8x16_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_u16 (uint16x8_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_u32 (uint32x4_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_p8 (poly8x16_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_p16 (poly16x8_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_p64 (poly64x2_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_p128 (poly128_t __a)
-{
-  return (uint64x2_t)__a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_f16 (float16x4_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_f64 (float64x1_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_s16 (int16x4_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_s32 (int32x2_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_s64 (int64x1_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_f32 (float32x2_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_u8 (uint8x8_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_u16 (uint16x4_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_u32 (uint32x2_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_u64 (uint64x1_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_p8 (poly8x8_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_p16 (poly16x4_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_p64 (poly64x1_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_f64 (float64x2_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_s16 (int16x8_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_s32 (int32x4_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_s64 (int64x2_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_f16 (float16x8_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_f32 (float32x4_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_u8 (uint8x16_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_u16 (uint16x8_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_u32 (uint32x4_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_u64 (uint64x2_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_p8 (poly8x16_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_p16 (poly16x8_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_p64 (poly64x2_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_p128 (poly128_t __a)
-{
-  return (int8x16_t)__a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_f16 (float16x4_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_f64 (float64x1_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_s8 (int8x8_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_s32 (int32x2_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_s64 (int64x1_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_f32 (float32x2_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_u8 (uint8x8_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_u16 (uint16x4_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_u32 (uint32x2_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_u64 (uint64x1_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_p8 (poly8x8_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_p16 (poly16x4_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_p64 (poly64x1_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_f64 (float64x2_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_s8 (int8x16_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_s32 (int32x4_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_s64 (int64x2_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_f16 (float16x8_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_f32 (float32x4_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_u8 (uint8x16_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_u16 (uint16x8_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_u32 (uint32x4_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_u64 (uint64x2_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_p8 (poly8x16_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_p16 (poly16x8_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_p64 (poly64x2_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_p128 (poly128_t __a)
-{
-  return (int16x8_t)__a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_f16 (float16x4_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_f64 (float64x1_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_s8 (int8x8_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_s16 (int16x4_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_s64 (int64x1_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_f32 (float32x2_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_u8 (uint8x8_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_u16 (uint16x4_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_u32 (uint32x2_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_u64 (uint64x1_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_p8 (poly8x8_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_p16 (poly16x4_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_p64 (poly64x1_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_f64 (float64x2_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_s8 (int8x16_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_s16 (int16x8_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_s64 (int64x2_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_f16 (float16x8_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_f32 (float32x4_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_u8 (uint8x16_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_u16 (uint16x8_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_u32 (uint32x4_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_u64 (uint64x2_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_p8 (poly8x16_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_p16 (poly16x8_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_p64 (poly64x2_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_p128 (poly128_t __a)
-{
-  return (int32x4_t)__a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_f16 (float16x4_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_f64 (float64x1_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_s8 (int8x8_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_s16 (int16x4_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_s32 (int32x2_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_s64 (int64x1_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_f32 (float32x2_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_u16 (uint16x4_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_u32 (uint32x2_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_u64 (uint64x1_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_p8 (poly8x8_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_p16 (poly16x4_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_p64 (poly64x1_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_f64 (float64x2_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_s8 (int8x16_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_s16 (int16x8_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_s32 (int32x4_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_s64 (int64x2_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_f16 (float16x8_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_f32 (float32x4_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_u16 (uint16x8_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_u32 (uint32x4_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_u64 (uint64x2_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_p8 (poly8x16_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_p16 (poly16x8_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_p64 (poly64x2_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_p128 (poly128_t __a)
-{
-  return (uint8x16_t)__a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_f16 (float16x4_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_f64 (float64x1_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_s8 (int8x8_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_s16 (int16x4_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_s32 (int32x2_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_s64 (int64x1_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_f32 (float32x2_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_u8 (uint8x8_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_u32 (uint32x2_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_u64 (uint64x1_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_p8 (poly8x8_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_p16 (poly16x4_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_p64 (poly64x1_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_f64 (float64x2_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_s8 (int8x16_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_s16 (int16x8_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_s32 (int32x4_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_s64 (int64x2_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_f16 (float16x8_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_f32 (float32x4_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_u8 (uint8x16_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_u32 (uint32x4_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_u64 (uint64x2_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_p8 (poly8x16_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_p16 (poly16x8_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_p64 (poly64x2_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_p128 (poly128_t __a)
-{
-  return (uint16x8_t)__a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_f16 (float16x4_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_f64 (float64x1_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_s8 (int8x8_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_s16 (int16x4_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_s32 (int32x2_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_s64 (int64x1_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_f32 (float32x2_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_u8 (uint8x8_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_u16 (uint16x4_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_u64 (uint64x1_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_p8 (poly8x8_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_p16 (poly16x4_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_p64 (poly64x1_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_f64 (float64x2_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_s8 (int8x16_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_s16 (int16x8_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_s32 (int32x4_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_s64 (int64x2_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_f16 (float16x8_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_f32 (float32x4_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_u8 (uint8x16_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_u16 (uint16x8_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_u64 (uint64x2_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_p8 (poly8x16_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_p16 (poly16x8_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_p64 (poly64x2_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_p128 (poly128_t __a)
-{
-  return (uint32x4_t)__a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_p128 (poly128_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_f64 (float64x2_t __a)
-{
-  return (poly128_t) __a;
-}
-
 /* vset_lane  */
 
 __extension__ extern __inline float16x4_t
@@ -30988,414 +28241,6 @@ vst4q_bf16 (bfloat16_t * __a, bfloat16x8x4_t __val)
   __builtin_aarch64_st4v8bf ((__builtin_aarch64_simd_bf *) __a, __val);
 }
 
-/* vreinterpret */
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_u8 (uint8x8_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_u16 (uint16x4_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_u32 (uint32x2_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_u64 (uint64x1_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_s8 (int8x8_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_s16 (int16x4_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_s32 (int32x2_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_s64 (int64x1_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_p8 (poly8x8_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_p16 (poly16x4_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_p64 (poly64x1_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_f16 (float16x4_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_f32 (float32x2_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_f64 (float64x1_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_u8 (uint8x16_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_u16 (uint16x8_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_u32 (uint32x4_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_u64 (uint64x2_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_s8 (int8x16_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_s16 (int16x8_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_s32 (int32x4_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_s64 (int64x2_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_p8 (poly8x16_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_p16 (poly16x8_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_p64 (poly64x2_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_p128 (poly128_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_f16 (float16x8_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_f32 (float32x4_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_f64 (float64x2_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_bf16 (bfloat16x4_t __a)
-{
-  return (int8x8_t)__a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_bf16 (bfloat16x4_t __a)
-{
-  return (int16x4_t)__a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_bf16 (bfloat16x4_t __a)
-{
-  return (int32x2_t)__a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_bf16 (bfloat16x4_t __a)
-{
-  return (int64x1_t)__a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_bf16 (bfloat16x4_t __a)
-{
-  return (uint8x8_t)__a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_bf16 (bfloat16x4_t __a)
-{
-  return (uint16x4_t)__a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_bf16 (bfloat16x4_t __a)
-{
-  return (uint32x2_t)__a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_bf16 (bfloat16x4_t __a)
-{
-  return (uint64x1_t)__a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_bf16 (bfloat16x4_t __a)
-{
-  return (float16x4_t)__a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_bf16 (bfloat16x4_t __a)
-{
-  return (float32x2_t)__a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_bf16 (bfloat16x4_t __a)
-{
-  return (float64x1_t)__a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_bf16 (bfloat16x4_t __a)
-{
-  return (poly8x8_t)__a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_bf16 (bfloat16x4_t __a)
-{
-  return (poly16x4_t)__a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_bf16 (bfloat16x4_t __a)
-{
-  return (poly64x1_t)__a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_bf16 (bfloat16x8_t __a)
-{
-  return (int8x16_t)__a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_bf16 (bfloat16x8_t __a)
-{
-  return (int16x8_t)__a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_bf16 (bfloat16x8_t __a)
-{
-  return (int32x4_t)__a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_bf16 (bfloat16x8_t __a)
-{
-  return (int64x2_t)__a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_bf16 (bfloat16x8_t __a)
-{
-  return (uint8x16_t)__a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_bf16 (bfloat16x8_t __a)
-{
-  return (uint16x8_t)__a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_bf16 (bfloat16x8_t __a)
-{
-  return (uint32x4_t)__a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_bf16 (bfloat16x8_t __a)
-{
-  return (uint64x2_t)__a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_bf16 (bfloat16x8_t __a)
-{
-  return (float16x8_t)__a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_bf16 (bfloat16x8_t __a)
-{
-  return (float32x4_t)__a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_bf16 (bfloat16x8_t __a)
-{
-  return (float64x2_t)__a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_bf16 (bfloat16x8_t __a)
-{
-  return (poly8x16_t)__a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_bf16 (bfloat16x8_t __a)
-{
-  return (poly16x8_t)__a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_bf16 (bfloat16x8_t __a)
-{
-  return (poly64x2_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_bf16 (bfloat16x8_t __a)
-{
-  return (poly128_t)__a;
-}
-
 __extension__ extern __inline float32x2_t
 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
 vbfdot_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b)
diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md
index e72fdf35a82e596844bbdbbcb23a13f763aac775..52f696d9f8cfdc3d847c6c9d889a45794f1f319d 100644
--- a/gcc/config/aarch64/iterators.md
+++ b/gcc/config/aarch64/iterators.md
@@ -1060,12 +1060,13 @@
 (define_mode_attr nunits [(V8QI "8") (V16QI "16")
 			  (V4HI "4") (V8HI "8")
 			  (V2SI "2") (V4SI "4")
-			  (V2DI "2") (V8DI "8")
+			  (V1DI "1") (V2DI "2")
 			  (V4HF "4") (V8HF "8")
 			  (V4BF "4") (V8BF "8")
 			  (V2SF "2") (V4SF "4")
 			  (V1DF "1") (V2DF "2")
-			  (DI "1") (DF "1")])
+			  (DI "1") (DF "1")
+			  (V8DI "8")])
 
 ;; Map a mode to the number of bits in it, if the size of the mode
 ;; is constant.
