diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h
index 87e3baf..3292ce0 100644
--- a/gcc/config/aarch64/arm_neon.h
+++ b/gcc/config/aarch64/arm_neon.h
@@ -22493,109 +22493,97 @@ vst2_f32 (float32_t * __a, float32x2x2_t val)
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_s8 (int8_t * __a, int8x16x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
-  __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
+  union { int8x16x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_p8 (poly8_t * __a, poly8x16x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
-  __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
+  union { poly8x16x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_s16 (int16_t * __a, int16x8x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
-  __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
+  union { int16x8x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_p16 (poly16_t * __a, poly16x8x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
-  __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
+  union { poly16x8x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_s32 (int32_t * __a, int32x4x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
-  __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
+  union { int32x4x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_s64 (int64_t * __a, int64x2x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
-  __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
+  union { int64x2x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_u8 (uint8_t * __a, uint8x16x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv16qi (__o, (int8x16_t) val.val[1], 1);
-  __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
+  union { uint8x16x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v16qi ((__builtin_aarch64_simd_qi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_u16 (uint16_t * __a, uint16x8x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv8hi (__o, (int16x8_t) val.val[1], 1);
-  __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
+  union { uint16x8x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v8hi ((__builtin_aarch64_simd_hi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_u32 (uint32_t * __a, uint32x4x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv4si (__o, (int32x4_t) val.val[1], 1);
-  __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __o);
+  union { uint32x4x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v4si ((__builtin_aarch64_simd_si *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_u64 (uint64_t * __a, uint64x2x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv2di (__o, (int64x2_t) val.val[1], 1);
-  __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __o);
+  union { uint64x2x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v2di ((__builtin_aarch64_simd_di *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_f32 (float32_t * __a, float32x4x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv4sf (__o, (float32x4_t) val.val[1], 1);
-  __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
+  union { float32x4x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v4sf ((__builtin_aarch64_simd_sf *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst2q_f64 (float64_t * __a, float64x2x2_t val)
 {
-  __builtin_aarch64_simd_oi __o;
-  __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregoiv2df (__o, (float64x2_t) val.val[1], 1);
-  __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __o);
+  union { float64x2x2_t __i;
+	  __builtin_aarch64_simd_oi __o; } __temp = { val };
+  __builtin_aarch64_st2v2df ((__builtin_aarch64_simd_df *) __a, __temp.__o);
 }
 
 __extension__ static __inline void
@@ -22769,121 +22757,97 @@ vst3_f32 (float32_t * __a, float32x2x3_t val)
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_s8 (int8_t * __a, int8x16x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
-  __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
+  union { int8x16x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_p8 (poly8_t * __a, poly8x16x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
-  __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
+  union { poly8x16x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_s16 (int16_t * __a, int16x8x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
-  __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
+  union { int16x8x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_p16 (poly16_t * __a, poly16x8x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
-  __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
+  union { poly16x8x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_s32 (int32_t * __a, int32x4x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
-  __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
+  union { int32x4x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_s64 (int64_t * __a, int64x2x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
-  __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
+  union { int64x2x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_u8 (uint8_t * __a, uint8x16x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv16qi (__o, (int8x16_t) val.val[2], 2);
-  __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
+  union { uint8x16x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v16qi ((__builtin_aarch64_simd_qi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_u16 (uint16_t * __a, uint16x8x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv8hi (__o, (int16x8_t) val.val[2], 2);
-  __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
+  union { uint16x8x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v8hi ((__builtin_aarch64_simd_hi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_u32 (uint32_t * __a, uint32x4x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv4si (__o, (int32x4_t) val.val[2], 2);
-  __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __o);
+  union { uint32x4x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v4si ((__builtin_aarch64_simd_si *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_u64 (uint64_t * __a, uint64x2x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv2di (__o, (int64x2_t) val.val[2], 2);
-  __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __o);
+  union { uint64x2x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v2di ((__builtin_aarch64_simd_di *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_f32 (float32_t * __a, float32x4x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv4sf (__o, (float32x4_t) val.val[2], 2);
-  __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
+  union { float32x4x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v4sf ((__builtin_aarch64_simd_sf *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst3q_f64 (float64_t * __a, float64x2x3_t val)
 {
-  __builtin_aarch64_simd_ci __o;
-  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregciv2df (__o, (float64x2_t) val.val[2], 2);
-  __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __o);
+  union { float64x2x3_t __i;
+	  __builtin_aarch64_simd_ci __o; } __temp = { val };
+  __builtin_aarch64_st3v2df ((__builtin_aarch64_simd_df *) __a, __temp.__o);
 }
 
 __extension__ static __inline void
@@ -23081,133 +23045,97 @@ vst4_f32 (float32_t * __a, float32x2x4_t val)
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_s8 (int8_t * __a, int8x16x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
-  __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
+  union { int8x16x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_p8 (poly8_t * __a, poly8x16x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
-  __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
+  union { poly8x16x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_s16 (int16_t * __a, int16x8x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
-  __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
+  union { int16x8x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_p16 (poly16_t * __a, poly16x8x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
-  __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
+  union { poly16x8x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_s32 (int32_t * __a, int32x4x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
-  __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
+  union { int32x4x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_s64 (int64_t * __a, int64x2x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
-  __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
+  union { int64x2x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_u8 (uint8_t * __a, uint8x16x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) val.val[3], 3);
-  __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __o);
+  union { uint8x16x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v16qi ((__builtin_aarch64_simd_qi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_u16 (uint16_t * __a, uint16x8x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) val.val[3], 3);
-  __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __o);
+  union { uint16x8x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v8hi ((__builtin_aarch64_simd_hi *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_u32 (uint32_t * __a, uint32x4x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) val.val[3], 3);
-  __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __o);
+  union { uint32x4x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v4si ((__builtin_aarch64_simd_si *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_u64 (uint64_t * __a, uint64x2x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) val.val[3], 3);
-  __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __o);
+  union { uint64x2x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v2di ((__builtin_aarch64_simd_di *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_f32 (float32_t * __a, float32x4x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) val.val[3], 3);
-  __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __o);
+  union { float32x4x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v4sf ((__builtin_aarch64_simd_sf *) __a, __temp.__o);
 }
 
 __extension__ static __inline void __attribute__ ((__always_inline__))
 vst4q_f64 (float64_t * __a, float64x2x4_t val)
 {
-  __builtin_aarch64_simd_xi __o;
-  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[0], 0);
-  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[1], 1);
-  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[2], 2);
-  __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) val.val[3], 3);
-  __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __o);
+  union { float64x2x4_t __i;
+	  __builtin_aarch64_simd_xi __o; } __temp = { val };
+  __builtin_aarch64_st4v2df ((__builtin_aarch64_simd_df *) __a, __temp.__o);
 }
 
 /* vsub */
