diff --git a/gcc/config/aarch64/aarch64-simd-builtins.def b/gcc/config/aarch64/aarch64-simd-builtins.def
index 1872445543dd3a4fc044c7a7335a335b91179f88..af39d9c2b42eea0bc45ea5bc3d4fc576849cfd65 100644
--- a/gcc/config/aarch64/aarch64-simd-builtins.def
+++ b/gcc/config/aarch64/aarch64-simd-builtins.def
@@ -46,9 +46,6 @@
   VAR1 (UNOP, addp, 0, di)
   BUILTIN_VDQ_BHSI (UNOP, clz, 2)
 
-  /* be_checked_get_lane does its own lane swapping, so not a lane index.  */
-  BUILTIN_VALL (GETREG, be_checked_get_lane, 0)
-
   /* Implemented by aarch64_<sur>q<r>shl<mode>.  */
   BUILTIN_VSDQ_I (BINOP, sqshl, 0)
   BUILTIN_VSDQ_I (BINOP_UUS, uqshl, 0)
diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
index 2656814e53d3ab2e9fd44bf800dd6316191e2071..49203c94c15c6af9f73c4a184075008749cdf3d3 100644
--- a/gcc/config/aarch64/aarch64-simd.md
+++ b/gcc/config/aarch64/aarch64-simd.md
@@ -2391,22 +2391,9 @@
   [(set_attr "type" "neon_to_gp<q>")]
 )
 
-(define_expand "aarch64_be_checked_get_lane<mode>"
-  [(match_operand:<VEL> 0 "aarch64_simd_nonimmediate_operand")
-   (match_operand:VALL 1 "register_operand")
-   (match_operand:SI 2 "immediate_operand")]
-  "TARGET_SIMD"
-  {
-    operands[2] = GEN_INT (ENDIAN_LANE_N (<MODE>mode, INTVAL (operands[2])));
-    emit_insn (gen_aarch64_get_lane<mode> (operands[0],
-					   operands[1],
-					   operands[2]));
-    DONE;
-  }
-)
-
 ;; Lane extraction of a value, neither sign nor zero extension
 ;; is guaranteed so upper bits should be considered undefined.
+;; RTL uses GCC vector extension indices throughout so flip only for assembly.
 (define_insn "aarch64_get_lane<mode>"
   [(set (match_operand:<VEL> 0 "aarch64_simd_nonimmediate_operand" "=r, w, Utv")
 	(vec_select:<VEL>
diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h
index 409cb8aae400392f5112bcf8f9847170c2cc9c78..9f2a56acabdb77f22d4980706e6fd87e63fcb952 100644
--- a/gcc/config/aarch64/arm_neon.h
+++ b/gcc/config/aarch64/arm_neon.h
@@ -426,183 +426,112 @@ typedef struct poly16x8x4_t
   poly16x8_t val[4];
 } poly16x8x4_t;
 
-/* vget_lane internal macros.  */
-
-#define __aarch64_vget_lane_any(__size, __cast_ret, __cast_a, __a, __b) \
-  (__cast_ret								\
-     __builtin_aarch64_be_checked_get_lane##__size (__cast_a __a, __b))
-
-#define __aarch64_vget_lane_f32(__a, __b) \
-  __aarch64_vget_lane_any (v2sf, , , __a, __b)
-#define __aarch64_vget_lane_f64(__a, __b) __extension__	\
-  ({							\
-    __AARCH64_LANE_CHECK (__a, __b);		\
-    __a[0];						\
-  })
-
-#define __aarch64_vget_lane_p8(__a, __b) \
-  __aarch64_vget_lane_any (v8qi, (poly8_t), (int8x8_t), __a, __b)
-#define __aarch64_vget_lane_p16(__a, __b) \
-  __aarch64_vget_lane_any (v4hi, (poly16_t), (int16x4_t), __a, __b)
-
-#define __aarch64_vget_lane_s8(__a, __b) \
-  __aarch64_vget_lane_any (v8qi, , ,__a, __b)
-#define __aarch64_vget_lane_s16(__a, __b) \
-  __aarch64_vget_lane_any (v4hi, , ,__a, __b)
-#define __aarch64_vget_lane_s32(__a, __b) \
-  __aarch64_vget_lane_any (v2si, , ,__a, __b)
-#define __aarch64_vget_lane_s64(__a, __b) __extension__	\
-  ({							\
-    __AARCH64_LANE_CHECK (__a, __b);		\
-    __a[0];						\
-  })
-
-#define __aarch64_vget_lane_u8(__a, __b) \
-  __aarch64_vget_lane_any (v8qi, (uint8_t), (int8x8_t), __a, __b)
-#define __aarch64_vget_lane_u16(__a, __b) \
-  __aarch64_vget_lane_any (v4hi, (uint16_t), (int16x4_t), __a, __b)
-#define __aarch64_vget_lane_u32(__a, __b) \
-  __aarch64_vget_lane_any (v2si, (uint32_t), (int32x2_t), __a, __b)
-#define __aarch64_vget_lane_u64(__a, __b) __extension__	\
-  ({							\
-    __AARCH64_LANE_CHECK (__a, __b);		\
-    __a[0];						\
-  })
-
-#define __aarch64_vgetq_lane_f32(__a, __b) \
-  __aarch64_vget_lane_any (v4sf, , , __a, __b)
-#define __aarch64_vgetq_lane_f64(__a, __b) \
-  __aarch64_vget_lane_any (v2df, , , __a, __b)
-
-#define __aarch64_vgetq_lane_p8(__a, __b) \
-  __aarch64_vget_lane_any (v16qi, (poly8_t), (int8x16_t), __a, __b)
-#define __aarch64_vgetq_lane_p16(__a, __b) \
-  __aarch64_vget_lane_any (v8hi, (poly16_t), (int16x8_t), __a, __b)
-
-#define __aarch64_vgetq_lane_s8(__a, __b) \
-  __aarch64_vget_lane_any (v16qi, , ,__a, __b)
-#define __aarch64_vgetq_lane_s16(__a, __b) \
-  __aarch64_vget_lane_any (v8hi, , ,__a, __b)
-#define __aarch64_vgetq_lane_s32(__a, __b) \
-  __aarch64_vget_lane_any (v4si, , ,__a, __b)
-#define __aarch64_vgetq_lane_s64(__a, __b) \
-  __aarch64_vget_lane_any (v2di, , ,__a, __b)
-
-#define __aarch64_vgetq_lane_u8(__a, __b) \
-  __aarch64_vget_lane_any (v16qi, (uint8_t), (int8x16_t), __a, __b)
-#define __aarch64_vgetq_lane_u16(__a, __b) \
-  __aarch64_vget_lane_any (v8hi, (uint16_t), (int16x8_t), __a, __b)
-#define __aarch64_vgetq_lane_u32(__a, __b) \
-  __aarch64_vget_lane_any (v4si, (uint32_t), (int32x4_t), __a, __b)
-#define __aarch64_vgetq_lane_u64(__a, __b) \
-  __aarch64_vget_lane_any (v2di, (uint64_t), (int64x2_t), __a, __b)
-
 /* __aarch64_vdup_lane internal macros.  */
-#define __aarch64_vdup_lane_any(__size, __q1, __q2, __a, __b) \
-  vdup##__q1##_n_##__size (__aarch64_vget##__q2##_lane_##__size (__a, __b))
+#define __aarch64_vdup_lane_any(__size, __q, __a, __b) \
+  vdup##__q##_n_##__size (__aarch64_vget_lane_any (__a, __b))
 
 #define __aarch64_vdup_lane_f32(__a, __b) \
-   __aarch64_vdup_lane_any (f32, , , __a, __b)
+   __aarch64_vdup_lane_any (f32, , __a, __b)
 #define __aarch64_vdup_lane_f64(__a, __b) \
-   __aarch64_vdup_lane_any (f64, , , __a, __b)
+   __aarch64_vdup_lane_any (f64, , __a, __b)
 #define __aarch64_vdup_lane_p8(__a, __b) \
-   __aarch64_vdup_lane_any (p8, , , __a, __b)
+   __aarch64_vdup_lane_any (p8, , __a, __b)
 #define __aarch64_vdup_lane_p16(__a, __b) \
-   __aarch64_vdup_lane_any (p16, , , __a, __b)
+   __aarch64_vdup_lane_any (p16, , __a, __b)
 #define __aarch64_vdup_lane_s8(__a, __b) \
-   __aarch64_vdup_lane_any (s8, , , __a, __b)
+   __aarch64_vdup_lane_any (s8, , __a, __b)
 #define __aarch64_vdup_lane_s16(__a, __b) \
-   __aarch64_vdup_lane_any (s16, , , __a, __b)
+   __aarch64_vdup_lane_any (s16, , __a, __b)
 #define __aarch64_vdup_lane_s32(__a, __b) \
-   __aarch64_vdup_lane_any (s32, , , __a, __b)
+   __aarch64_vdup_lane_any (s32, , __a, __b)
 #define __aarch64_vdup_lane_s64(__a, __b) \
-  __aarch64_vdup_lane_any (s64, , , __a, __b)
+  __aarch64_vdup_lane_any (s64, , __a, __b)
 #define __aarch64_vdup_lane_u8(__a, __b) \
-   __aarch64_vdup_lane_any (u8, , , __a, __b)
+   __aarch64_vdup_lane_any (u8, , __a, __b)
 #define __aarch64_vdup_lane_u16(__a, __b) \
-   __aarch64_vdup_lane_any (u16, , , __a, __b)
+   __aarch64_vdup_lane_any (u16, , __a, __b)
 #define __aarch64_vdup_lane_u32(__a, __b) \
-   __aarch64_vdup_lane_any (u32, , , __a, __b)
+   __aarch64_vdup_lane_any (u32, , __a, __b)
 #define __aarch64_vdup_lane_u64(__a, __b) \
-   __aarch64_vdup_lane_any (u64, , , __a, __b)
+   __aarch64_vdup_lane_any (u64, , __a, __b)
 
 /* __aarch64_vdup_laneq internal macros.  */
 #define __aarch64_vdup_laneq_f32(__a, __b) \
-   __aarch64_vdup_lane_any (f32, , q, __a, __b)
+   __aarch64_vdup_lane_any (f32, , __a, __b)
 #define __aarch64_vdup_laneq_f64(__a, __b) \
-   __aarch64_vdup_lane_any (f64, , q, __a, __b)
+   __aarch64_vdup_lane_any (f64, , __a, __b)
 #define __aarch64_vdup_laneq_p8(__a, __b) \
-   __aarch64_vdup_lane_any (p8, , q, __a, __b)
+   __aarch64_vdup_lane_any (p8, , __a, __b)
 #define __aarch64_vdup_laneq_p16(__a, __b) \
-   __aarch64_vdup_lane_any (p16, , q, __a, __b)
+   __aarch64_vdup_lane_any (p16, , __a, __b)
 #define __aarch64_vdup_laneq_s8(__a, __b) \
-   __aarch64_vdup_lane_any (s8, , q, __a, __b)
+   __aarch64_vdup_lane_any (s8, , __a, __b)
 #define __aarch64_vdup_laneq_s16(__a, __b) \
-   __aarch64_vdup_lane_any (s16, , q, __a, __b)
+   __aarch64_vdup_lane_any (s16, , __a, __b)
 #define __aarch64_vdup_laneq_s32(__a, __b) \
-   __aarch64_vdup_lane_any (s32, , q, __a, __b)
+   __aarch64_vdup_lane_any (s32, , __a, __b)
 #define __aarch64_vdup_laneq_s64(__a, __b) \
-   __aarch64_vdup_lane_any (s64, , q, __a, __b)
+   __aarch64_vdup_lane_any (s64, , __a, __b)
 #define __aarch64_vdup_laneq_u8(__a, __b) \
-   __aarch64_vdup_lane_any (u8, , q, __a, __b)
+   __aarch64_vdup_lane_any (u8, , __a, __b)
 #define __aarch64_vdup_laneq_u16(__a, __b) \
-   __aarch64_vdup_lane_any (u16, , q, __a, __b)
+   __aarch64_vdup_lane_any (u16, , __a, __b)
 #define __aarch64_vdup_laneq_u32(__a, __b) \
-   __aarch64_vdup_lane_any (u32, , q, __a, __b)
+   __aarch64_vdup_lane_any (u32, , __a, __b)
 #define __aarch64_vdup_laneq_u64(__a, __b) \
-   __aarch64_vdup_lane_any (u64, , q, __a, __b)
+   __aarch64_vdup_lane_any (u64, , __a, __b)
 
 /* __aarch64_vdupq_lane internal macros.  */
 #define __aarch64_vdupq_lane_f32(__a, __b) \
-   __aarch64_vdup_lane_any (f32, q, , __a, __b)
+   __aarch64_vdup_lane_any (f32, q, __a, __b)
 #define __aarch64_vdupq_lane_f64(__a, __b) \
-   __aarch64_vdup_lane_any (f64, q, , __a, __b)
+   __aarch64_vdup_lane_any (f64, q, __a, __b)
 #define __aarch64_vdupq_lane_p8(__a, __b) \
-   __aarch64_vdup_lane_any (p8, q, , __a, __b)
+   __aarch64_vdup_lane_any (p8, q, __a, __b)
 #define __aarch64_vdupq_lane_p16(__a, __b) \
-   __aarch64_vdup_lane_any (p16, q, , __a, __b)
+   __aarch64_vdup_lane_any (p16, q, __a, __b)
 #define __aarch64_vdupq_lane_s8(__a, __b) \
-   __aarch64_vdup_lane_any (s8, q, , __a, __b)
+   __aarch64_vdup_lane_any (s8, q, __a, __b)
 #define __aarch64_vdupq_lane_s16(__a, __b) \
-   __aarch64_vdup_lane_any (s16, q, , __a, __b)
+   __aarch64_vdup_lane_any (s16, q, __a, __b)
 #define __aarch64_vdupq_lane_s32(__a, __b) \
-   __aarch64_vdup_lane_any (s32, q, , __a, __b)
+   __aarch64_vdup_lane_any (s32, q, __a, __b)
 #define __aarch64_vdupq_lane_s64(__a, __b) \
-   __aarch64_vdup_lane_any (s64, q, , __a, __b)
+   __aarch64_vdup_lane_any (s64, q, __a, __b)
 #define __aarch64_vdupq_lane_u8(__a, __b) \
-   __aarch64_vdup_lane_any (u8, q, , __a, __b)
+   __aarch64_vdup_lane_any (u8, q, __a, __b)
 #define __aarch64_vdupq_lane_u16(__a, __b) \
-   __aarch64_vdup_lane_any (u16, q, , __a, __b)
+   __aarch64_vdup_lane_any (u16, q, __a, __b)
 #define __aarch64_vdupq_lane_u32(__a, __b) \
-   __aarch64_vdup_lane_any (u32, q, , __a, __b)
+   __aarch64_vdup_lane_any (u32, q, __a, __b)
 #define __aarch64_vdupq_lane_u64(__a, __b) \
-   __aarch64_vdup_lane_any (u64, q, , __a, __b)
+   __aarch64_vdup_lane_any (u64, q, __a, __b)
 
 /* __aarch64_vdupq_laneq internal macros.  */
 #define __aarch64_vdupq_laneq_f32(__a, __b) \
-   __aarch64_vdup_lane_any (f32, q, q, __a, __b)
+   __aarch64_vdup_lane_any (f32, q, __a, __b)
 #define __aarch64_vdupq_laneq_f64(__a, __b) \
-   __aarch64_vdup_lane_any (f64, q, q, __a, __b)
+   __aarch64_vdup_lane_any (f64, q, __a, __b)
 #define __aarch64_vdupq_laneq_p8(__a, __b) \
-   __aarch64_vdup_lane_any (p8, q, q, __a, __b)
+   __aarch64_vdup_lane_any (p8, q, __a, __b)
 #define __aarch64_vdupq_laneq_p16(__a, __b) \
-   __aarch64_vdup_lane_any (p16, q, q, __a, __b)
+   __aarch64_vdup_lane_any (p16, q, __a, __b)
 #define __aarch64_vdupq_laneq_s8(__a, __b) \
-   __aarch64_vdup_lane_any (s8, q, q, __a, __b)
+   __aarch64_vdup_lane_any (s8, q, __a, __b)
 #define __aarch64_vdupq_laneq_s16(__a, __b) \
-   __aarch64_vdup_lane_any (s16, q, q, __a, __b)
+   __aarch64_vdup_lane_any (s16, q, __a, __b)
 #define __aarch64_vdupq_laneq_s32(__a, __b) \
-   __aarch64_vdup_lane_any (s32, q, q, __a, __b)
+   __aarch64_vdup_lane_any (s32, q, __a, __b)
 #define __aarch64_vdupq_laneq_s64(__a, __b) \
-   __aarch64_vdup_lane_any (s64, q, q, __a, __b)
+   __aarch64_vdup_lane_any (s64, q, __a, __b)
 #define __aarch64_vdupq_laneq_u8(__a, __b) \
-   __aarch64_vdup_lane_any (u8, q, q, __a, __b)
+   __aarch64_vdup_lane_any (u8, q, __a, __b)
 #define __aarch64_vdupq_laneq_u16(__a, __b) \
-   __aarch64_vdup_lane_any (u16, q, q, __a, __b)
+   __aarch64_vdup_lane_any (u16, q, __a, __b)
 #define __aarch64_vdupq_laneq_u32(__a, __b) \
-   __aarch64_vdup_lane_any (u32, q, q, __a, __b)
+   __aarch64_vdup_lane_any (u32, q, __a, __b)
 #define __aarch64_vdupq_laneq_u64(__a, __b) \
-   __aarch64_vdup_lane_any (u64, q, q, __a, __b)
+   __aarch64_vdup_lane_any (u64, q, __a, __b)
 
 /* Internal macro for lane indices.  */
 
@@ -618,8 +547,15 @@ typedef struct poly16x8x4_t
 #define __aarch64_lane(__vec, __idx) __idx
 #endif
 
-/* vset_lane and vld1_lane internal macro.  */
+/* vget_lane internal macro.  */
+#define __aarch64_vget_lane_any(__vec, __index)				\
+  __extension__								\
+  ({									\
+    __AARCH64_LANE_CHECK (__vec, __index);				\
+    __vec[__aarch64_lane (__vec, __index)];				\
+  })
 
+/* vset_lane and vld1_lane internal macro.  */
 #define __aarch64_vset_lane_any(__elem, __vec, __index)			\
   __extension__								\
   ({									\
@@ -2514,73 +2450,73 @@ vcreate_p16 (uint64_t __a)
 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
 vget_lane_f32 (float32x2_t __a, const int __b)
 {
-  return __aarch64_vget_lane_f32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline float64_t __attribute__ ((__always_inline__))
 vget_lane_f64 (float64x1_t __a, const int __b)
 {
-  return __aarch64_vget_lane_f64 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
 vget_lane_p8 (poly8x8_t __a, const int __b)
 {
-  return __aarch64_vget_lane_p8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
 vget_lane_p16 (poly16x4_t __a, const int __b)
 {
-  return __aarch64_vget_lane_p16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
 vget_lane_s8 (int8x8_t __a, const int __b)
 {
-  return __aarch64_vget_lane_s8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
 vget_lane_s16 (int16x4_t __a, const int __b)
 {
-  return __aarch64_vget_lane_s16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
 vget_lane_s32 (int32x2_t __a, const int __b)
 {
-  return __aarch64_vget_lane_s32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int64_t __attribute__ ((__always_inline__))
 vget_lane_s64 (int64x1_t __a, const int __b)
 {
-  return __aarch64_vget_lane_s64 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
 vget_lane_u8 (uint8x8_t __a, const int __b)
 {
-  return __aarch64_vget_lane_u8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
 vget_lane_u16 (uint16x4_t __a, const int __b)
 {
-  return __aarch64_vget_lane_u16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
 vget_lane_u32 (uint32x2_t __a, const int __b)
 {
-  return __aarch64_vget_lane_u32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
 vget_lane_u64 (uint64x1_t __a, const int __b)
 {
-  return __aarch64_vget_lane_u64 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 /* vgetq_lane  */
@@ -2588,73 +2524,73 @@ vget_lane_u64 (uint64x1_t __a, const int __b)
 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
 vgetq_lane_f32 (float32x4_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_f32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline float64_t __attribute__ ((__always_inline__))
 vgetq_lane_f64 (float64x2_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_f64 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
 vgetq_lane_p8 (poly8x16_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_p8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
 vgetq_lane_p16 (poly16x8_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_p16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
 vgetq_lane_s8 (int8x16_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_s8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
 vgetq_lane_s16 (int16x8_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_s16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
 vgetq_lane_s32 (int32x4_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_s32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int64_t __attribute__ ((__always_inline__))
 vgetq_lane_s64 (int64x2_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_s64 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
 vgetq_lane_u8 (uint8x16_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_u8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
 vgetq_lane_u16 (uint16x8_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_u16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
 vgetq_lane_u32 (uint32x4_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_u32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
 vgetq_lane_u64 (uint64x2_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_u64 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 /* vreinterpret  */
@@ -15040,57 +14976,57 @@ vdupq_laneq_u64 (uint64x2_t __a, const int __b)
 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
 vdupb_lane_p8 (poly8x8_t __a, const int __b)
 {
-  return __aarch64_vget_lane_p8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
 vdupb_lane_s8 (int8x8_t __a, const int __b)
 {
-  return __aarch64_vget_lane_s8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
 vdupb_lane_u8 (uint8x8_t __a, const int __b)
 {
-  return __aarch64_vget_lane_u8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 /* vduph_lane  */
 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
 vduph_lane_p16 (poly16x4_t __a, const int __b)
 {
-  return __aarch64_vget_lane_p16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
 vduph_lane_s16 (int16x4_t __a, const int __b)
 {
-  return __aarch64_vget_lane_s16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
 vduph_lane_u16 (uint16x4_t __a, const int __b)
 {
-  return __aarch64_vget_lane_u16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 /* vdups_lane  */
 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
 vdups_lane_f32 (float32x2_t __a, const int __b)
 {
-  return __aarch64_vget_lane_f32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
 vdups_lane_s32 (int32x2_t __a, const int __b)
 {
-  return __aarch64_vget_lane_s32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
 vdups_lane_u32 (uint32x2_t __a, const int __b)
 {
-  return __aarch64_vget_lane_u32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 /* vdupd_lane  */
@@ -15119,76 +15055,76 @@ vdupd_lane_u64 (uint64x1_t __a, const int __b)
 __extension__ static __inline poly8_t __attribute__ ((__always_inline__))
 vdupb_laneq_p8 (poly8x16_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_p8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int8_t __attribute__ ((__always_inline__))
 vdupb_laneq_s8 (int8x16_t __a, const int __attribute__ ((unused)) __b)
 {
-  return __aarch64_vgetq_lane_s8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint8_t __attribute__ ((__always_inline__))
 vdupb_laneq_u8 (uint8x16_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_u8 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 /* vduph_laneq  */
 __extension__ static __inline poly16_t __attribute__ ((__always_inline__))
 vduph_laneq_p16 (poly16x8_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_p16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int16_t __attribute__ ((__always_inline__))
 vduph_laneq_s16 (int16x8_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_s16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint16_t __attribute__ ((__always_inline__))
 vduph_laneq_u16 (uint16x8_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_u16 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 /* vdups_laneq  */
 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
 vdups_laneq_f32 (float32x4_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_f32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int32_t __attribute__ ((__always_inline__))
 vdups_laneq_s32 (int32x4_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_s32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint32_t __attribute__ ((__always_inline__))
 vdups_laneq_u32 (uint32x4_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_u32 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 /* vdupd_laneq  */
 __extension__ static __inline float64_t __attribute__ ((__always_inline__))
 vdupd_laneq_f64 (float64x2_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_f64 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline int64_t __attribute__ ((__always_inline__))
 vdupd_laneq_s64 (int64x2_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_s64 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
 vdupd_laneq_u64 (uint64x2_t __a, const int __b)
 {
-  return __aarch64_vgetq_lane_u64 (__a, __b);
+  return __aarch64_vget_lane_any (__a, __b);
 }
 
 /* vext  */
@@ -15514,7 +15450,7 @@ __extension__ static __inline float32_t __attribute__ ((__always_inline__))
 vfmas_lane_f32 (float32_t __a, float32_t __b,
 	        float32x2_t __c, const int __lane)
 {
-  return __builtin_fmaf (__b, __aarch64_vget_lane_f32 (__c, __lane), __a);
+  return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
 }
 
 /* vfma_laneq  */
@@ -15532,7 +15468,7 @@ __extension__ static __inline float64x1_t __attribute__ ((__always_inline__))
 vfma_laneq_f64 (float64x1_t __a, float64x1_t __b,
 	        float64x2_t __c, const int __lane)
 {
-  float64_t __c0 = __aarch64_vgetq_lane_f64 (__c, __lane);
+  float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
   return (float64x1_t) {__builtin_fma (__b[0], __c0, __a[0])};
 }
 
@@ -15540,14 +15476,14 @@ __extension__ static __inline float64_t __attribute__ ((__always_inline__))
 vfmad_laneq_f64 (float64_t __a, float64_t __b,
 	         float64x2_t __c, const int __lane)
 {
-  return __builtin_fma (__b, __aarch64_vgetq_lane_f64 (__c, __lane), __a);
+  return __builtin_fma (__b, __aarch64_vget_lane_any (__c, __lane), __a);
 }
 
 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
 vfmas_laneq_f32 (float32_t __a, float32_t __b,
 		 float32x4_t __c, const int __lane)
 {
-  return __builtin_fmaf (__b, __aarch64_vgetq_lane_f32 (__c, __lane), __a);
+  return __builtin_fmaf (__b, __aarch64_vget_lane_any (__c, __lane), __a);
 }
 
 /* vfmaq_lane  */
@@ -15625,7 +15561,7 @@ __extension__ static __inline float32_t __attribute__ ((__always_inline__))
 vfmss_lane_f32 (float32_t __a, float32_t __b,
 	        float32x2_t __c, const int __lane)
 {
-  return __builtin_fmaf (-__b, __aarch64_vget_lane_f32 (__c, __lane), __a);
+  return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
 }
 
 /* vfms_laneq  */
@@ -15643,7 +15579,7 @@ __extension__ static __inline float64x1_t __attribute__ ((__always_inline__))
 vfms_laneq_f64 (float64x1_t __a, float64x1_t __b,
 	        float64x2_t __c, const int __lane)
 {
-  float64_t __c0 = __aarch64_vgetq_lane_f64 (__c, __lane);
+  float64_t __c0 = __aarch64_vget_lane_any (__c, __lane);
   return (float64x1_t) {__builtin_fma (-__b[0], __c0, __a[0])};
 }
 
@@ -15651,14 +15587,14 @@ __extension__ static __inline float64_t __attribute__ ((__always_inline__))
 vfmsd_laneq_f64 (float64_t __a, float64_t __b,
 	         float64x2_t __c, const int __lane)
 {
-  return __builtin_fma (-__b, __aarch64_vgetq_lane_f64 (__c, __lane), __a);
+  return __builtin_fma (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
 }
 
 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
 vfmss_laneq_f32 (float32_t __a, float32_t __b,
 		 float32x4_t __c, const int __lane)
 {
-  return __builtin_fmaf (-__b, __aarch64_vgetq_lane_f32 (__c, __lane), __a);
+  return __builtin_fmaf (-__b, __aarch64_vget_lane_any (__c, __lane), __a);
 }
 
 /* vfmsq_lane  */
@@ -18659,35 +18595,35 @@ __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
 vmla_lane_f32 (float32x2_t __a, float32x2_t __b,
 	       float32x2_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vget_lane_f32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
 vmla_lane_s16 (int16x4_t __a, int16x4_t __b,
 		int16x4_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vget_lane_s16 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
 vmla_lane_s32 (int32x2_t __a, int32x2_t __b,
 		int32x2_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vget_lane_s32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
 vmla_lane_u16 (uint16x4_t __a, uint16x4_t __b,
 		uint16x4_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vget_lane_u16 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
 vmla_lane_u32 (uint32x2_t __a, uint32x2_t __b,
 	       uint32x2_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vget_lane_u32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 /* vmla_laneq  */
@@ -18696,35 +18632,35 @@ __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
 vmla_laneq_f32 (float32x2_t __a, float32x2_t __b,
 	        float32x4_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vgetq_lane_f32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
 vmla_laneq_s16 (int16x4_t __a, int16x4_t __b,
 		int16x8_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vgetq_lane_s16 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
 vmla_laneq_s32 (int32x2_t __a, int32x2_t __b,
 		int32x4_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vgetq_lane_s32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
 vmla_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
 		uint16x8_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vgetq_lane_u16 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
 vmla_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
 		uint32x4_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vgetq_lane_u32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 /* vmlaq_lane  */
@@ -18733,35 +18669,35 @@ __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
 vmlaq_lane_f32 (float32x4_t __a, float32x4_t __b,
 		float32x2_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vget_lane_f32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
 vmlaq_lane_s16 (int16x8_t __a, int16x8_t __b,
 		int16x4_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vget_lane_s16 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
 vmlaq_lane_s32 (int32x4_t __a, int32x4_t __b,
 		int32x2_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vget_lane_s32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
 vmlaq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
 		uint16x4_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vget_lane_u16 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
 vmlaq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
 		uint32x2_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vget_lane_u32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
   /* vmlaq_laneq  */
@@ -18770,35 +18706,35 @@ __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
 vmlaq_laneq_f32 (float32x4_t __a, float32x4_t __b,
 		 float32x4_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vgetq_lane_f32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
 vmlaq_laneq_s16 (int16x8_t __a, int16x8_t __b,
 		int16x8_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vgetq_lane_s16 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
 vmlaq_laneq_s32 (int32x4_t __a, int32x4_t __b,
 		int32x4_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vgetq_lane_s32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
 vmlaq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
 		uint16x8_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vgetq_lane_u16 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
 vmlaq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
 		uint32x4_t __c, const int __lane)
 {
-  return (__a + (__b * __aarch64_vgetq_lane_u32 (__c, __lane)));
+  return (__a + (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 /* vmls  */
@@ -18833,35 +18769,35 @@ __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
 vmls_lane_f32 (float32x2_t __a, float32x2_t __b,
 	       float32x2_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vget_lane_f32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
 vmls_lane_s16 (int16x4_t __a, int16x4_t __b,
 		int16x4_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vget_lane_s16 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
 vmls_lane_s32 (int32x2_t __a, int32x2_t __b,
 		int32x2_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vget_lane_s32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
 vmls_lane_u16 (uint16x4_t __a, uint16x4_t __b,
 		uint16x4_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vget_lane_u16 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
 vmls_lane_u32 (uint32x2_t __a, uint32x2_t __b,
 	       uint32x2_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vget_lane_u32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 /* vmls_laneq  */
@@ -18870,35 +18806,35 @@ __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
 vmls_laneq_f32 (float32x2_t __a, float32x2_t __b,
 	       float32x4_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vgetq_lane_f32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
 vmls_laneq_s16 (int16x4_t __a, int16x4_t __b,
 		int16x8_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vgetq_lane_s16 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
 vmls_laneq_s32 (int32x2_t __a, int32x2_t __b,
 		int32x4_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vgetq_lane_s32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
 vmls_laneq_u16 (uint16x4_t __a, uint16x4_t __b,
 		uint16x8_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vgetq_lane_u16 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
 vmls_laneq_u32 (uint32x2_t __a, uint32x2_t __b,
 		uint32x4_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vgetq_lane_u32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 /* vmlsq_lane  */
@@ -18907,35 +18843,35 @@ __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
 vmlsq_lane_f32 (float32x4_t __a, float32x4_t __b,
 		float32x2_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vget_lane_f32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
 vmlsq_lane_s16 (int16x8_t __a, int16x8_t __b,
 		int16x4_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vget_lane_s16 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
 vmlsq_lane_s32 (int32x4_t __a, int32x4_t __b,
 		int32x2_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vget_lane_s32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
 vmlsq_lane_u16 (uint16x8_t __a, uint16x8_t __b,
 		uint16x4_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vget_lane_u16 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
 vmlsq_lane_u32 (uint32x4_t __a, uint32x4_t __b,
 		uint32x2_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vget_lane_u32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
   /* vmlsq_laneq  */
@@ -18944,34 +18880,34 @@ __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
 vmlsq_laneq_f32 (float32x4_t __a, float32x4_t __b,
 		float32x4_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vgetq_lane_f32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
 vmlsq_laneq_s16 (int16x8_t __a, int16x8_t __b,
 		int16x8_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vgetq_lane_s16 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
 vmlsq_laneq_s32 (int32x4_t __a, int32x4_t __b,
 		int32x4_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vgetq_lane_s32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
 vmlsq_laneq_u16 (uint16x8_t __a, uint16x8_t __b,
 		uint16x8_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vgetq_lane_u16 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
 vmlsq_laneq_u32 (uint32x4_t __a, uint32x4_t __b,
 		uint32x4_t __c, const int __lane)
 {
-  return (__a - (__b * __aarch64_vgetq_lane_u32 (__c, __lane)));
+  return (__a - (__b * __aarch64_vget_lane_any (__c, __lane)));
 }
 
 /* vmov_n_  */
@@ -19125,7 +19061,7 @@ vmovq_n_u64 (uint64_t __a)
 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
 vmul_lane_f32 (float32x2_t __a, float32x2_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_f32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline float64x1_t __attribute__ ((__always_inline__))
@@ -19137,25 +19073,25 @@ vmul_lane_f64 (float64x1_t __a, float64x1_t __b, const int __lane)
 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
 vmul_lane_s16 (int16x4_t __a, int16x4_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_s16 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
 vmul_lane_s32 (int32x2_t __a, int32x2_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_s32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
 vmul_lane_u16 (uint16x4_t __a, uint16x4_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_u16 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
 vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_u32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 /* vmuld_lane  */
@@ -19163,13 +19099,13 @@ vmul_lane_u32 (uint32x2_t __a, uint32x2_t __b, const int __lane)
 __extension__ static __inline float64_t __attribute__ ((__always_inline__))
 vmuld_lane_f64 (float64_t __a, float64x1_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_f64 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline float64_t __attribute__ ((__always_inline__))
 vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_f64 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 /* vmuls_lane  */
@@ -19177,13 +19113,13 @@ vmuld_laneq_f64 (float64_t __a, float64x2_t __b, const int __lane)
 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
 vmuls_lane_f32 (float32_t __a, float32x2_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_f32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline float32_t __attribute__ ((__always_inline__))
 vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_f32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 /* vmul_laneq  */
@@ -19191,37 +19127,37 @@ vmuls_laneq_f32 (float32_t __a, float32x4_t __b, const int __lane)
 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
 vmul_laneq_f32 (float32x2_t __a, float32x4_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_f32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline float64x1_t __attribute__ ((__always_inline__))
 vmul_laneq_f64 (float64x1_t __a, float64x2_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_f64 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
 vmul_laneq_s16 (int16x4_t __a, int16x8_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_s16 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
 vmul_laneq_s32 (int32x2_t __a, int32x4_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_s32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
 vmul_laneq_u16 (uint16x4_t __a, uint16x8_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_u16 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
 vmul_laneq_u32 (uint32x2_t __a, uint32x4_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_u32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 /* vmul_n  */
@@ -19237,7 +19173,7 @@ vmul_n_f64  (float64x1_t __a, float64_t __b)
 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
 vmulq_lane_f32 (float32x4_t __a, float32x2_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_f32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline float64x2_t __attribute__ ((__always_inline__))
@@ -19250,25 +19186,25 @@ vmulq_lane_f64 (float64x2_t __a, float64x1_t __b, const int __lane)
 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
 vmulq_lane_s16 (int16x8_t __a, int16x4_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_s16 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
 vmulq_lane_s32 (int32x4_t __a, int32x2_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_s32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
 vmulq_lane_u16 (uint16x8_t __a, uint16x4_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_u16 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
 vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
 {
-  return __a * __aarch64_vget_lane_u32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 /* vmulq_laneq  */
@@ -19276,37 +19212,37 @@ vmulq_lane_u32 (uint32x4_t __a, uint32x2_t __b, const int __lane)
 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
 vmulq_laneq_f32 (float32x4_t __a, float32x4_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_f32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline float64x2_t __attribute__ ((__always_inline__))
 vmulq_laneq_f64 (float64x2_t __a, float64x2_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_f64 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline int16x8_t __attribute__ ((__always_inline__))
 vmulq_laneq_s16 (int16x8_t __a, int16x8_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_s16 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline int32x4_t __attribute__ ((__always_inline__))
 vmulq_laneq_s32 (int32x4_t __a, int32x4_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_s32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
 vmulq_laneq_u16 (uint16x8_t __a, uint16x8_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_u16 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__))
 vmulq_laneq_u32 (uint32x4_t __a, uint32x4_t __b, const int __lane)
 {
-  return __a * __aarch64_vgetq_lane_u32 (__b, __lane);
+  return __a * __aarch64_vget_lane_any (__b, __lane);
 }
 
 /* vneg  */
@@ -25480,31 +25416,6 @@ __INTERLEAVE_LIST (zip)
 /* End of optimal implementations in approved order.  */
 
 #undef __aarch64_vget_lane_any
-#undef __aarch64_vget_lane_f32
-#undef __aarch64_vget_lane_f64
-#undef __aarch64_vget_lane_p8
-#undef __aarch64_vget_lane_p16
-#undef __aarch64_vget_lane_s8
-#undef __aarch64_vget_lane_s16
-#undef __aarch64_vget_lane_s32
-#undef __aarch64_vget_lane_s64
-#undef __aarch64_vget_lane_u8
-#undef __aarch64_vget_lane_u16
-#undef __aarch64_vget_lane_u32
-#undef __aarch64_vget_lane_u64
-
-#undef __aarch64_vgetq_lane_f32
-#undef __aarch64_vgetq_lane_f64
-#undef __aarch64_vgetq_lane_p8
-#undef __aarch64_vgetq_lane_p16
-#undef __aarch64_vgetq_lane_s8
-#undef __aarch64_vgetq_lane_s16
-#undef __aarch64_vgetq_lane_s32
-#undef __aarch64_vgetq_lane_s64
-#undef __aarch64_vgetq_lane_u8
-#undef __aarch64_vgetq_lane_u16
-#undef __aarch64_vgetq_lane_u32
-#undef __aarch64_vgetq_lane_u64
 
 #undef __aarch64_vdup_lane_any
 #undef __aarch64_vdup_lane_f32
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f32_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f32_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..d16a3e882d5265f74083be0d6c83abc42f9d8b85
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f32_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+float32_t
+test_vget_lane_f32_before (float32x2_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vget_lane_f32 (in, -1);
+}
+
+float32_t
+test_vget_lane_f32_beyond (float32x2_t in)
+{
+  /* { dg-error "lane 2 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vget_lane_f32 (in, 2);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f64_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f64_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..0e90429ae964d77495f87669db200c6f6bbbadb2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_f64_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+float64_t
+test_vget_lane_f64_before (float64x1_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 0" "" {target *-*-*} 0 } */
+  return vget_lane_f64 (in, -1);
+}
+
+float64_t
+test_vget_lane_f64_beyond (float64x1_t in)
+{
+  /* { dg-error "lane 1 out of range 0 - 0" "" {target *-*-*} 0 } */
+  return vget_lane_f64 (in, 1);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p16_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p16_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..bcf25394519378afc30d85c2b26f3913ee8bef69
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p16_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+poly16_t
+test_vget_lane_p16_before (poly16x4_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vget_lane_p16 (in, -1);
+}
+
+poly16_t
+test_vget_lane_p16_beyond (poly16x4_t in)
+{
+  /* { dg-error "lane 4 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vget_lane_p16 (in, 4);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p8_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p8_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..5dc8dc47afef8099e2040bb146e82b5feafeb54a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_p8_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+poly8_t
+test_vget_lane_p8_before (poly8x8_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vget_lane_p8 (in, -1);
+}
+
+poly8_t
+test_vget_lane_p8_beyond (poly8x8_t in)
+{
+  /* { dg-error "lane 8 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vget_lane_p8 (in, 8);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s16_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s16_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..c65fb40721a2cf4a3de6d5958779fdf0bf530587
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s16_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+int16_t
+test_vget_lane_s16_before (int16x4_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vget_lane_s16 (in, -1);
+}
+
+int16_t
+test_vget_lane_s16_beyond (int16x4_t in)
+{
+  /* { dg-error "lane 4 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vget_lane_s16 (in, 4);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s32_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s32_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..1f95137832dcc7df53f678ff42961ae0f93305d8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s32_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+int32_t
+test_vget_lane_s32_before (int32x2_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vget_lane_s32 (in, -1);
+}
+
+int32_t
+test_vget_lane_s32_beyond (int32x2_t in)
+{
+  /* { dg-error "lane 2 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vget_lane_s32 (in, 2);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s64_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s64_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..e449797fe54c56e32d80b78783adbbf66713388b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s64_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+int64_t
+test_vget_lane_s64_before (int64x1_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 0" "" {target *-*-*} 0 } */
+  return vget_lane_s64 (in, -1);
+}
+
+int64_t
+test_vget_lane_s64_beyond (int64x1_t in)
+{
+  /* { dg-error "lane 1 out of range 0 - 0" "" {target *-*-*} 0 } */
+  return vget_lane_s64 (in, 1);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s8_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s8_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..77e94860f1d09e41b41a0b087c42bff4689d6eeb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_s8_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+int8_t
+test_vget_lane_s8_before (int8x8_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vget_lane_s8 (in, -1);
+}
+
+int8_t
+test_vget_lane_s8_beyond (int8x8_t in)
+{
+  /* { dg-error "lane 8 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vget_lane_s8 (in, 8);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u16_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u16_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..77fb3c8057c3e63b14ba6aac78caec1038936dcc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u16_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+uint16_t
+test_vget_lane_u16_before (uint16x4_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vget_lane_u16 (in, -1);
+}
+
+uint16_t
+test_vget_lane_u16_beyond (uint16x4_t in)
+{
+  /* { dg-error "lane 4 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vget_lane_u16 (in, 4);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u32_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u32_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..e670626a060e2dfb9dbf3583687e0c6f0cb0d935
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u32_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+uint32_t
+test_vget_lane_u32_before (uint32x2_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vget_lane_u32 (in, -1);
+}
+
+uint32_t
+test_vget_lane_u32_beyond (uint32x2_t in)
+{
+  /* { dg-error "lane 2 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vget_lane_u32 (in, 2);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u64_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u64_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..44d5a4d9e01690b4d334431f0a200b08dfecc582
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u64_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+uint64_t
+test_vget_lane_u64_before (uint64x1_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 0" "" {target *-*-*} 0 } */
+  return vget_lane_u64 (in, -1);
+}
+
+uint64_t
+test_vget_lane_u64_beyond (uint64x1_t in)
+{
+  /* { dg-error "lane 1 out of range 0 - 0" "" {target *-*-*} 0 } */
+  return vget_lane_u64 (in, 1);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u8_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u8_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..b452d56c9c13fb6712fc8f177097e890774996d5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vget_lane_u8_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+uint8_t
+test_vget_lane_u8_before (uint8x8_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vget_lane_u8 (in, -1);
+}
+
+uint8_t
+test_vget_lane_u8_beyond (uint8x8_t in)
+{
+  /* { dg-error "lane 8 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vget_lane_u8 (in, 8);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f32_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f32_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..8a50ed2ac11702aed42606f361b48052101254ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f32_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+float32_t
+test_vgetq_lane_f32_before (float32x4_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vgetq_lane_f32 (in, -1);
+}
+
+float32_t
+test_vgetq_lane_f32_beyond (float32x4_t in)
+{
+  /* { dg-error "lane 4 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vgetq_lane_f32 (in, 4);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f64_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f64_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..492b1ae66b903ead9a480d6915a1714cbd22281b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_f64_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+float64_t
+test_vgetq_lane_f64_before (float64x2_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vgetq_lane_f64 (in, -1);
+}
+
+float64_t
+test_vgetq_lane_f64_beyond (float64x2_t in)
+{
+  /* { dg-error "lane 2 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vgetq_lane_f64 (in, 2);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p16_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p16_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..caa41b269c3df173b463ca9a434b3b08b3706c88
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p16_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+poly16_t
+test_vgetq_lane_p16_before (poly16x8_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vgetq_lane_p16 (in, -1);
+}
+
+poly16_t
+test_vgetq_lane_p16_beyond (poly16x8_t in)
+{
+  /* { dg-error "lane 8 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vgetq_lane_p16 (in, 8);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p8_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p8_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..38caa27e1081587a910847d2432f3403107bf38a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_p8_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+poly8_t
+test_vgetq_lane_p8_before (poly8x16_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 15" "" {target *-*-*} 0 } */
+  return vgetq_lane_p8 (in, -1);
+}
+
+poly8_t
+test_vgetq_lane_p8_beyond (poly8x16_t in)
+{
+  /* { dg-error "lane 16 out of range 0 - 15" "" {target *-*-*} 0 } */
+  return vgetq_lane_p8 (in, 16);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s16_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s16_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..0f4e4f58253b5de5aca0409428c48b316fec4d2b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s16_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+int16_t
+test_vgetq_lane_s16_before (int16x8_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vgetq_lane_s16 (in, -1);
+}
+
+int16_t
+test_vgetq_lane_s16_beyond (int16x8_t in)
+{
+  /* { dg-error "lane 8 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vgetq_lane_s16 (in, 8);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s32_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s32_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..68133b4bdcaca29918a9342818a221e495dee02d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s32_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+int32_t
+test_vgetq_lane_s32_before (int32x4_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vgetq_lane_s32 (in, -1);
+}
+
+int32_t
+test_vgetq_lane_s32_beyond (int32x4_t in)
+{
+  /* { dg-error "lane 4 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vgetq_lane_s32 (in, 4);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s64_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s64_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..4ac607fe2cc86228ea5a731dc4874d2feb0167f3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s64_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+int64_t
+test_vgetq_lane_s64_before (int64x2_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vgetq_lane_s64 (in, -1);
+}
+
+int64_t
+test_vgetq_lane_s64_beyond (int64x2_t in)
+{
+  /* { dg-error "lane 2 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vgetq_lane_s64 (in, 2);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s8_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s8_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..0e44dbc1851cc306356db61a359959b2df1dded9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_s8_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+int8_t
+test_vgetq_lane_s8_before (int8x16_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 15" "" {target *-*-*} 0 } */
+  return vgetq_lane_s8 (in, -1);
+}
+
+int8_t
+test_vgetq_lane_s8_beyond (int8x16_t in)
+{
+  /* { dg-error "lane 16 out of range 0 - 15" "" {target *-*-*} 0 } */
+  return vgetq_lane_s8 (in, 16);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u16_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u16_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..5ccea06f9ee7b4b7d0783ee0bd3b9695c57169f5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u16_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+uint16_t
+test_vgetq_lane_u16_before (uint16x8_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vgetq_lane_u16 (in, -1);
+}
+
+uint16_t
+test_vgetq_lane_u16_beyond (uint16x8_t in)
+{
+  /* { dg-error "lane 8 out of range 0 - 7" "" {target *-*-*} 0 } */
+  return vgetq_lane_u16 (in, 8);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u32_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u32_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..bfbf081cbe2525b346ce8069c7970235c6db8bf2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u32_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+uint32_t
+test_vgetq_lane_u32_before (uint32x4_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vgetq_lane_u32 (in, -1);
+}
+
+uint32_t
+test_vgetq_lane_u32_beyond (uint32x4_t in)
+{
+  /* { dg-error "lane 4 out of range 0 - 3" "" {target *-*-*} 0 } */
+  return vgetq_lane_u32 (in, 4);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u64_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u64_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..a0d426e84adbea82d30a40ab348e7efba873b109
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u64_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+uint64_t
+test_vgetq_lane_u64_before (uint64x2_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vgetq_lane_u64 (in, -1);
+}
+
+uint64_t
+test_vgetq_lane_u64_beyond (uint64x2_t in)
+{
+  /* { dg-error "lane 2 out of range 0 - 1" "" {target *-*-*} 0 } */
+  return vgetq_lane_u64 (in, 2);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u8_indices_1.c b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u8_indices_1.c
new file mode 100644
index 0000000000000000000000000000000000000000..c9ad6634d7bfbd2d1291624a1974ee0e09e0ec30
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vgetq_lane_u8_indices_1.c
@@ -0,0 +1,17 @@
+/* { dg-do assemble } */
+
+#include <arm_neon.h>
+
+uint8_t
+test_vgetq_lane_u8_before (uint8x16_t in)
+{
+  /* { dg-error "lane -1 out of range 0 - 15" "" {target *-*-*} 0 } */
+  return vgetq_lane_u8 (in, -1);
+}
+
+uint8_t
+test_vgetq_lane_u8_beyond (uint8x16_t in)
+{
+  /* { dg-error "lane 16 out of range 0 - 15" "" {target *-*-*} 0 } */
+  return vgetq_lane_u8 (in, 16);
+}