[llvm-commits] [llvm-gcc-4.2] r83387 - in /llvm-gcc-4.2/trunk/gcc/config/arm: arm.c arm_neon.h neon-gen.ml

Bob Wilson bob.wilson at apple.com
Tue Oct 6 09:45:06 PDT 2009


Author: bwilson
Date: Tue Oct  6 11:45:06 2009
New Revision: 83387

URL: http://llvm.org/viewvc/llvm-project?rev=83387&view=rev
Log:
Fix the type checking problems introduced when we moved from inline functions
to preprocessor macros.  For each macro, assign non-immediate operands to
local variables of the correct type so that the frontend will detect errors
and give reasonable messages for them.  The extra copies should be optimized
away, and for unoptimized code, they should be roughly comparable to what we
had before with inline functions.

Also partially revert my previous patch to use types from <stdint.h> instead
of having special builtin types.  Sandeep reported that <stdint.h> from
newlib has some unexpected types which did not match the types used for
some of the NEON builtins.  (Now I see why GCC did it that way!)  When the
<arm_neon.h> header is used in C++, this means we need to use reinterpret_cast
to avoid errors when converting between the internal types and the <stdint.h>
types.

Modified:
    llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
    llvm-gcc-4.2/trunk/gcc/config/arm/arm_neon.h
    llvm-gcc-4.2/trunk/gcc/config/arm/neon-gen.ml

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm.c?rev=83387&r1=83386&r2=83387&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm.c Tue Oct  6 11:45:06 2009
@@ -16862,6 +16862,8 @@
   /* LLVM LOCAL begin pr5037 use standard type nodes */
   tree neon_intQI_type_node = intQI_type_node;
   tree neon_intHI_type_node = intHI_type_node;
+  tree neon_polyQI_type_node = intQI_type_node;
+  tree neon_polyHI_type_node = intHI_type_node;
   tree neon_intSI_type_node = intSI_type_node;
   tree neon_intDI_type_node = intDI_type_node;
   tree neon_float_type_node = float_type_node;
@@ -16918,7 +16920,11 @@
   tree V2DI_type_node =
     build_vector_type_for_mode (neon_intDI_type_node, V2DImode);
 
-  /* LLVM LOCAL pr5037 removed unused type nodes */
+  /* Unsigned integer types for various mode sizes.  */
+  tree intUQI_type_node = make_unsigned_type (GET_MODE_PRECISION (QImode));
+  tree intUHI_type_node = make_unsigned_type (GET_MODE_PRECISION (HImode));
+  tree intUSI_type_node = make_unsigned_type (GET_MODE_PRECISION (SImode));
+  tree intUDI_type_node = make_unsigned_type (GET_MODE_PRECISION (DImode));
 
   /* LLVM LOCAL begin multi-vector types */
 #ifdef ENABLE_LLVM
@@ -17804,7 +17810,33 @@
   tree dreg_types[5], qreg_types[5];
 
   /* APPLE LOCAL begin 7083296 Build without warnings.  */
-  /* LLVM LOCAL pr5037 removed builtin element types */
+  /* Define typedefs which exactly correspond to the modes we are basing vector
+     types on.  If you change these names you'll need to change
+     the table used by arm_mangle_type too.  */
+  (*lang_hooks.types.register_builtin_type) (neon_intQI_type_node,
+					     "__builtin_neon_qi");
+  (*lang_hooks.types.register_builtin_type) (neon_intHI_type_node,
+					     "__builtin_neon_hi");
+  (*lang_hooks.types.register_builtin_type) (neon_intSI_type_node,
+					     "__builtin_neon_si");
+  (*lang_hooks.types.register_builtin_type) (neon_float_type_node,
+					     "__builtin_neon_sf");
+  (*lang_hooks.types.register_builtin_type) (neon_intDI_type_node,
+					     "__builtin_neon_di");
+ 
+  (*lang_hooks.types.register_builtin_type) (neon_polyQI_type_node,
+					     "__builtin_neon_poly8");
+  (*lang_hooks.types.register_builtin_type) (neon_polyHI_type_node,
+					     "__builtin_neon_poly16");
+
+  (*lang_hooks.types.register_builtin_type) (intUQI_type_node,
+					     "__builtin_neon_uqi");
+  (*lang_hooks.types.register_builtin_type) (intUHI_type_node,
+					     "__builtin_neon_uhi");
+  (*lang_hooks.types.register_builtin_type) (intUSI_type_node,
+					     "__builtin_neon_usi");
+  (*lang_hooks.types.register_builtin_type) (intUDI_type_node,
+					     "__builtin_neon_udi");
 
   /* LLVM LOCAL begin multi-vector types */
   (*lang_hooks.types.register_builtin_type) (V8QI2_type_node,

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm_neon.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm_neon.h?rev=83387&r1=83386&r2=83387&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm_neon.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm_neon.h Tue Oct  6 11:45:06 2009
@@ -39,36 +39,39 @@
 
 #ifdef __cplusplus
 extern "C" {
+#define __neon_ptr_cast(ty, ptr) reinterpret_cast<ty>(ptr)
+#else
+#define __neon_ptr_cast(ty, ptr) (ty)(ptr)
 #endif
 
 #include <stdint.h>
 
-typedef float float32_t;
-typedef signed char poly8_t;
-typedef signed short poly16_t;
-
-typedef int8_t  __neon_int8x8_t 	__attribute__ ((__vector_size__ (8)));
-typedef int16_t __neon_int16x4_t 	__attribute__ ((__vector_size__ (8)));
-typedef int32_t __neon_int32x2_t 	__attribute__ ((__vector_size__ (8)));
-typedef int64_t __neon_int64x1_t 	__attribute__ ((__vector_size__ (8)));
-typedef float32_t __neon_float32x2_t 	__attribute__ ((__vector_size__ (8)));
-typedef poly8_t __neon_poly8x8_t 	__attribute__ ((__vector_size__ (8)));
-typedef poly16_t __neon_poly16x4_t 	__attribute__ ((__vector_size__ (8)));
-typedef uint8_t __neon_uint8x8_t 	__attribute__ ((__vector_size__ (8)));
-typedef uint16_t __neon_uint16x4_t 	__attribute__ ((__vector_size__ (8)));
-typedef uint32_t __neon_uint32x2_t 	__attribute__ ((__vector_size__ (8)));
-typedef uint64_t __neon_uint64x1_t 	__attribute__ ((__vector_size__ (8)));
-typedef int8_t __neon_int8x16_t 	__attribute__ ((__vector_size__ (16)));
-typedef int16_t __neon_int16x8_t 	__attribute__ ((__vector_size__ (16)));
-typedef int32_t __neon_int32x4_t 	__attribute__ ((__vector_size__ (16)));
-typedef int64_t __neon_int64x2_t 	__attribute__ ((__vector_size__ (16)));
-typedef float32_t __neon_float32x4_t 	__attribute__ ((__vector_size__ (16)));
-typedef poly8_t __neon_poly8x16_t 	__attribute__ ((__vector_size__ (16)));
-typedef poly16_t __neon_poly16x8_t 	__attribute__ ((__vector_size__ (16)));
-typedef uint8_t __neon_uint8x16_t 	__attribute__ ((__vector_size__ (16)));
-typedef uint16_t __neon_uint16x8_t 	__attribute__ ((__vector_size__ (16)));
-typedef uint32_t __neon_uint32x4_t 	__attribute__ ((__vector_size__ (16)));
-typedef uint64_t __neon_uint64x2_t 	__attribute__ ((__vector_size__ (16)));
+typedef __builtin_neon_qi __neon_int8x8_t	__attribute__ ((__vector_size__ (8)));
+typedef __builtin_neon_hi __neon_int16x4_t	__attribute__ ((__vector_size__ (8)));
+typedef __builtin_neon_si __neon_int32x2_t	__attribute__ ((__vector_size__ (8)));
+typedef __builtin_neon_di __neon_int64x1_t	__attribute__ ((__vector_size__ (8)));
+typedef __builtin_neon_sf __neon_float32x2_t	__attribute__ ((__vector_size__ (8)));
+typedef __builtin_neon_poly8 __neon_poly8x8_t	__attribute__ ((__vector_size__ (8)));
+typedef __builtin_neon_poly16 __neon_poly16x4_t	__attribute__ ((__vector_size__ (8)));
+typedef __builtin_neon_uqi __neon_uint8x8_t	__attribute__ ((__vector_size__ (8)));
+typedef __builtin_neon_uhi __neon_uint16x4_t	__attribute__ ((__vector_size__ (8)));
+typedef __builtin_neon_usi __neon_uint32x2_t	__attribute__ ((__vector_size__ (8)));
+typedef __builtin_neon_udi __neon_uint64x1_t	__attribute__ ((__vector_size__ (8)));
+typedef __builtin_neon_qi __neon_int8x16_t	__attribute__ ((__vector_size__ (16)));
+typedef __builtin_neon_hi __neon_int16x8_t	__attribute__ ((__vector_size__ (16)));
+typedef __builtin_neon_si __neon_int32x4_t	__attribute__ ((__vector_size__ (16)));
+typedef __builtin_neon_di __neon_int64x2_t	__attribute__ ((__vector_size__ (16)));
+typedef __builtin_neon_sf __neon_float32x4_t	__attribute__ ((__vector_size__ (16)));
+typedef __builtin_neon_poly8 __neon_poly8x16_t	__attribute__ ((__vector_size__ (16)));
+typedef __builtin_neon_poly16 __neon_poly16x8_t	__attribute__ ((__vector_size__ (16)));
+typedef __builtin_neon_uqi __neon_uint8x16_t	__attribute__ ((__vector_size__ (16)));
+typedef __builtin_neon_uhi __neon_uint16x8_t	__attribute__ ((__vector_size__ (16)));
+typedef __builtin_neon_usi __neon_uint32x4_t	__attribute__ ((__vector_size__ (16)));
+typedef __builtin_neon_udi __neon_uint64x2_t	__attribute__ ((__vector_size__ (16)));
+
+typedef __builtin_neon_sf float32_t;
+typedef __builtin_neon_poly8 poly8_t;
+typedef __builtin_neon_poly16 poly16_t;
 
 typedef struct __simd64_int8_t
 {
@@ -513,12786 +516,15905 @@
 
 #define vadd_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vadd_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vadd_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vadd_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv1di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddv1di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vadd_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vaddv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vadd_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vadd_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vadd_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vadd_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vaddv4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vaddq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddl_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddlv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddlv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddl_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddlv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddlv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddl_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddlv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddlv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddl_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddlv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddlv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddl_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddlv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddlv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddl_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddlv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddlv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddw_s8(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddwv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddwv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddw_s16(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddwv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddwv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddw_s32(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddwv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddwv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddw_u8(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddwv8qi ((__neon_int16x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddwv8qi ((__neon_int16x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddw_u16(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddwv4hi ((__neon_int32x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddwv4hi ((__neon_int32x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddw_u32(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddwv2si ((__neon_int64x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddwv2si ((__neon_int64x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhadd_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhaddv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhadd_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhaddv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhadd_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhaddv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhadd_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhaddv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhadd_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhaddv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhadd_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhaddv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhaddq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhaddv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhaddq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhaddv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhaddq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhaddv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhaddq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhaddv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhaddq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhaddv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhaddq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhaddv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vrhadd_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv8qi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vhaddv8qi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrhadd_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv4hi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vhaddv4hi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrhadd_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv2si (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vhaddv2si (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrhadd_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vhaddv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrhadd_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vhaddv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrhadd_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vhaddv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrhaddq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv16qi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vhaddv16qi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrhaddq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv8hi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vhaddv8hi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrhaddq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv4si (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vhaddv4si (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrhaddq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vhaddv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrhaddq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vhaddv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrhaddq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhaddv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vhaddv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vqadd_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqaddv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqadd_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqaddv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqadd_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqaddv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqadd_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv1di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqaddv1di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqadd_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqaddv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqadd_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqaddv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqadd_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqaddv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqadd_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqaddv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqaddq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqaddv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqaddq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqaddv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqaddq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqaddv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqaddq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqaddv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqaddq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqaddv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqaddq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqaddv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqaddq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqaddv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqaddq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqaddv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqaddv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddhn_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddhnv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddhn_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddhnv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddhn_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vaddhnv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vaddhn_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddhnv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddhn_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddhnv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaddhn_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vaddhnv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vraddhn_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv8hi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vaddhnv8hi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vraddhn_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv4si (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vaddhnv4si (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vraddhn_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv2di (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vaddhnv2di (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vraddhn_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vaddhnv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vraddhn_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vaddhnv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vraddhn_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vaddhnv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vaddhnv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vmul_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmulv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmul_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmulv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmul_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmulv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmul_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vmulv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vmul_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmulv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmul_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmulv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmul_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmulv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmul_p8(__a, __b) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 4); \
+     __rv.__o = __builtin_neon_vmulv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 4); \
      __rv.__i; \
    })
 
 #define vmulq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmulv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmulq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmulv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmulq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmulv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmulq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vmulv4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vmulq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmulv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmulq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmulv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmulq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmulv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmulq_p8(__a, __b) \
   ({ \
+     poly8x16_t __ax = __a; \
+     poly8x16_t __bx = __b; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmulv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 4); \
+     __rv.__o = __builtin_neon_vmulv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 4); \
      __rv.__i; \
    })
 
 #define vqdmulh_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulhv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqdmulhv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqdmulh_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulhv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqdmulhv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqdmulhq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulhv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqdmulhv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqdmulhq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulhv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqdmulhv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqrdmulh_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulhv4hi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqdmulhv4hi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vqrdmulh_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulhv2si (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqdmulhv2si (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vqrdmulhq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulhv8hi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqdmulhv8hi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vqrdmulhq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulhv4si (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqdmulhv4si (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vmull_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmullv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmullv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmull_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmullv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmullv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmull_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmullv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmullv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmull_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmullv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmullv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmull_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmullv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmullv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmull_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmullv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmullv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmull_p8(__a, __b) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmullv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 4); \
+     __rv.__o = __builtin_neon_vmullv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 4); \
      __rv.__i; \
    })
 
 #define vqdmull_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmullv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqdmullv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqdmull_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmullv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqdmullv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmla_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
+     int8x8_t __cx = __c; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav8qi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlav8qi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmla_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav4hi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlav4hi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmla_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav2si (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlav2si (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmla_f32(__a, __b, __c) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
+     float32x2_t __cx = __c; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav2sf (__a.val, __b.val, __c.val, 5); \
+     __rv.__o = __builtin_neon_vmlav2sf (__ax.val, __bx.val, __cx.val, 5); \
      __rv.__i; \
    })
 
 #define vmla_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
+     uint8x8_t __cx = __c; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, (__neon_int8x8_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlav8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmla_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlav4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmla_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, (__neon_int32x2_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlav2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlaq_s8(__a, __b, __c) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
+     int8x16_t __cx = __c; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav16qi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlav16qi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlaq_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
+     int16x8_t __cx = __c; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav8hi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlav8hi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlaq_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
+     int32x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav4si (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlav4si (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlaq_f32(__a, __b, __c) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
+     float32x4_t __cx = __c; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav4sf (__a.val, __b.val, __c.val, 5); \
+     __rv.__o = __builtin_neon_vmlav4sf (__ax.val, __bx.val, __cx.val, 5); \
      __rv.__i; \
    })
 
 #define vmlaq_u8(__a, __b, __c) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
+     uint8x16_t __cx = __c; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, (__neon_int8x16_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlav16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, (__neon_int8x16_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlaq_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
+     uint16x8_t __cx = __c; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, (__neon_int16x8_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlav8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, (__neon_int16x8_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlaq_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
+     uint32x4_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlav4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, (__neon_int32x4_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlav4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, (__neon_int32x4_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlal_s8(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
+     int8x8_t __cx = __c; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlalv8qi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlalv8qi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlal_s16(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlalv4hi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlalv4hi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlal_s32(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlalv2si (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlalv2si (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlal_u8(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
+     uint8x8_t __cx = __c; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlalv8qi ((__neon_int16x8_t) __a.val, (__neon_int8x8_t) __b.val, (__neon_int8x8_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlalv8qi ((__neon_int16x8_t) __ax.val, (__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlal_u16(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlalv4hi ((__neon_int32x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlalv4hi ((__neon_int32x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlal_u32(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlalv2si ((__neon_int64x2_t) __a.val, (__neon_int32x2_t) __b.val, (__neon_int32x2_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlalv2si ((__neon_int64x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vqdmlal_s16(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlalv4hi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vqdmlalv4hi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vqdmlal_s32(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlalv2si (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vqdmlalv2si (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmls_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
+     int8x8_t __cx = __c; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv8qi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlsv8qi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmls_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv4hi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlsv4hi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmls_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv2si (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlsv2si (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmls_f32(__a, __b, __c) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
+     float32x2_t __cx = __c; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv2sf (__a.val, __b.val, __c.val, 5); \
+     __rv.__o = __builtin_neon_vmlsv2sf (__ax.val, __bx.val, __cx.val, 5); \
      __rv.__i; \
    })
 
 #define vmls_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
+     uint8x8_t __cx = __c; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, (__neon_int8x8_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlsv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmls_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlsv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmls_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, (__neon_int32x2_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlsv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlsq_s8(__a, __b, __c) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
+     int8x16_t __cx = __c; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv16qi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlsv16qi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlsq_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
+     int16x8_t __cx = __c; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv8hi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlsv8hi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlsq_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
+     int32x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv4si (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlsv4si (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlsq_f32(__a, __b, __c) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
+     float32x4_t __cx = __c; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv4sf (__a.val, __b.val, __c.val, 5); \
+     __rv.__o = __builtin_neon_vmlsv4sf (__ax.val, __bx.val, __cx.val, 5); \
      __rv.__i; \
    })
 
 #define vmlsq_u8(__a, __b, __c) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
+     uint8x16_t __cx = __c; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, (__neon_int8x16_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlsv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, (__neon_int8x16_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlsq_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
+     uint16x8_t __cx = __c; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, (__neon_int16x8_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlsv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, (__neon_int16x8_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlsq_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
+     uint32x4_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, (__neon_int32x4_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlsv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, (__neon_int32x4_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlsl_s8(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
+     int8x8_t __cx = __c; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlslv8qi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlslv8qi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlsl_s16(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlslv4hi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlslv4hi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlsl_s32(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlslv2si (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vmlslv2si (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vmlsl_u8(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
+     uint8x8_t __cx = __c; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlslv8qi ((__neon_int16x8_t) __a.val, (__neon_int8x8_t) __b.val, (__neon_int8x8_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlslv8qi ((__neon_int16x8_t) __ax.val, (__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlsl_u16(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlslv4hi ((__neon_int32x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlslv4hi ((__neon_int32x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmlsl_u32(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlslv2si ((__neon_int64x2_t) __a.val, (__neon_int32x2_t) __b.val, (__neon_int32x2_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vmlslv2si ((__neon_int64x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vqdmlsl_s16(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlslv4hi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vqdmlslv4hi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vqdmlsl_s32(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlslv2si (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vqdmlslv2si (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vsub_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsub_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsub_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsub_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv1di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubv1di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsub_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vsubv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vsub_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsub_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsub_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsub_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vsubv4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vsubq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubl_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsublv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsublv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubl_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsublv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsublv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubl_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsublv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsublv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubl_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsublv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsublv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubl_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsublv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsublv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubl_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsublv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsublv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubw_s8(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubwv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubwv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubw_s16(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubwv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubwv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubw_s32(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubwv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubwv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubw_u8(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubwv8qi ((__neon_int16x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubwv8qi ((__neon_int16x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubw_u16(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubwv4hi ((__neon_int32x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubwv4hi ((__neon_int32x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubw_u32(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubwv2si ((__neon_int64x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubwv2si ((__neon_int64x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhsub_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhsubv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhsub_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhsubv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhsub_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhsubv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhsub_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhsubv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhsub_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhsubv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhsub_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhsubv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhsubq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhsubv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhsubq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhsubv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhsubq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vhsubv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vhsubq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhsubv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhsubq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhsubv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vhsubq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vhsubv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vhsubv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqsub_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqsubv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqsub_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqsubv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqsub_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqsubv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqsub_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv1di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqsubv1di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqsub_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqsubv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqsub_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqsubv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqsub_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqsubv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqsub_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqsubv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqsubq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqsubv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqsubq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqsubv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqsubq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqsubv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqsubq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqsubv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqsubq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqsubv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqsubq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqsubv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqsubq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqsubv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqsubq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqsubv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vqsubv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubhn_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubhnv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubhn_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubhnv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubhn_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vsubhnv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vsubhn_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubhnv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubhn_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubhnv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vsubhn_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vsubhnv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vrsubhn_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv8hi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vsubhnv8hi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrsubhn_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv4si (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vsubhnv4si (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrsubhn_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv2di (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vsubhnv2di (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrsubhn_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vsubhnv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrsubhn_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vsubhnv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrsubhn_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsubhnv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 2); \
+     __rv.__o = __builtin_neon_vsubhnv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vceq_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vceqv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vceq_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vceqv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vceq_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vceqv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vceq_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vceqv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vceq_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vceqv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vceq_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vceqv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vceq_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vceqv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vceq_p8(__a, __b) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 4); \
+     __rv.__o = __builtin_neon_vceqv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 4); \
      __rv.__i; \
    })
 
 #define vceqq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vceqv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vceqq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vceqv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vceqq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vceqv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vceqq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vceqv4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vceqq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vceqv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vceqq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vceqv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vceqq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vceqv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vceqq_p8(__a, __b) \
   ({ \
+     poly8x16_t __ax = __a; \
+     poly8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vceqv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 4); \
+     __rv.__o = __builtin_neon_vceqv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 4); \
      __rv.__i; \
    })
 
 #define vcge_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgev8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcge_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgev4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcge_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgev2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcge_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vcgev2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vcge_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgev8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vcge_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgev4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vcge_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgev2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vcgeq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgev16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcgeq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgev8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcgeq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgev4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcgeq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vcgev4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vcgeq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgev16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vcgeq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgev8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vcgeq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgev4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vcle_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev8qi (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgev8qi (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcle_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev4hi (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgev4hi (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcle_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev2si (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgev2si (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcle_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev2sf (__b.val, __a.val, 5); \
+     __rv.__o = __builtin_neon_vcgev2sf (__bx.val, __ax.val, 5); \
      __rv.__i; \
    })
 
 #define vcle_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev8qi ((__neon_int8x8_t) __b.val, (__neon_int8x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgev8qi ((__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcle_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev4hi ((__neon_int16x4_t) __b.val, (__neon_int16x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgev4hi ((__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcle_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev2si ((__neon_int32x2_t) __b.val, (__neon_int32x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgev2si ((__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcleq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev16qi (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgev16qi (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcleq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev8hi (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgev8hi (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcleq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev4si (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgev4si (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcleq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev4sf (__b.val, __a.val, 5); \
+     __rv.__o = __builtin_neon_vcgev4sf (__bx.val, __ax.val, 5); \
      __rv.__i; \
    })
 
 #define vcleq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev16qi ((__neon_int8x16_t) __b.val, (__neon_int8x16_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgev16qi ((__neon_int8x16_t) __bx.val, (__neon_int8x16_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcleq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev8hi ((__neon_int16x8_t) __b.val, (__neon_int16x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgev8hi ((__neon_int16x8_t) __bx.val, (__neon_int16x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcleq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgev4si ((__neon_int32x4_t) __b.val, (__neon_int32x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgev4si ((__neon_int32x4_t) __bx.val, (__neon_int32x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcgt_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcgt_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcgt_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcgt_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vcgtv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vcgt_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vcgt_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vcgt_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vcgtq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcgtq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcgtq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vcgtq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vcgtv4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vcgtq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vcgtq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vcgtq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vclt_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv8qi (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv8qi (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclt_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv4hi (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv4hi (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclt_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv2si (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv2si (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclt_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv2sf (__b.val, __a.val, 5); \
+     __rv.__o = __builtin_neon_vcgtv2sf (__bx.val, __ax.val, 5); \
      __rv.__i; \
    })
 
 #define vclt_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv8qi ((__neon_int8x8_t) __b.val, (__neon_int8x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv8qi ((__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vclt_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv4hi ((__neon_int16x4_t) __b.val, (__neon_int16x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv4hi ((__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vclt_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv2si ((__neon_int32x2_t) __b.val, (__neon_int32x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv2si ((__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcltq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv16qi (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv16qi (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcltq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv8hi (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv8hi (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcltq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv4si (__b.val, __a.val, 1); \
+     __rv.__o = __builtin_neon_vcgtv4si (__bx.val, __ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcltq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv4sf (__b.val, __a.val, 5); \
+     __rv.__o = __builtin_neon_vcgtv4sf (__bx.val, __ax.val, 5); \
      __rv.__i; \
    })
 
 #define vcltq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv16qi ((__neon_int8x16_t) __b.val, (__neon_int8x16_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv16qi ((__neon_int8x16_t) __bx.val, (__neon_int8x16_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcltq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv8hi ((__neon_int16x8_t) __b.val, (__neon_int16x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv8hi ((__neon_int16x8_t) __bx.val, (__neon_int16x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcltq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcgtv4si ((__neon_int32x4_t) __b.val, (__neon_int32x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcgtv4si ((__neon_int32x4_t) __bx.val, (__neon_int32x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcage_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcagev2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vcagev2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vcageq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcagev4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vcagev4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vcale_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcagev2sf (__b.val, __a.val, 5); \
+     __rv.__o = __builtin_neon_vcagev2sf (__bx.val, __ax.val, 5); \
      __rv.__i; \
    })
 
 #define vcaleq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcagev4sf (__b.val, __a.val, 5); \
+     __rv.__o = __builtin_neon_vcagev4sf (__bx.val, __ax.val, 5); \
      __rv.__i; \
    })
 
 #define vcagt_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcagtv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vcagtv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vcagtq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcagtv4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vcagtv4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vcalt_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcagtv2sf (__b.val, __a.val, 5); \
+     __rv.__o = __builtin_neon_vcagtv2sf (__bx.val, __ax.val, 5); \
      __rv.__i; \
    })
 
 #define vcaltq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcagtv4sf (__b.val, __a.val, 5); \
+     __rv.__o = __builtin_neon_vcagtv4sf (__bx.val, __ax.val, 5); \
      __rv.__i; \
    })
 
 #define vtst_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vtstv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vtst_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vtstv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vtst_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vtstv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vtst_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vtstv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vtst_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vtstv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vtst_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vtstv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vtst_p8(__a, __b) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 4); \
+     __rv.__o = __builtin_neon_vtstv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 4); \
      __rv.__i; \
    })
 
 #define vtstq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vtstv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vtstq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vtstv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vtstq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vtstv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vtstq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vtstv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vtstq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vtstv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vtstq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vtstv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vtstq_p8(__a, __b) \
   ({ \
+     poly8x16_t __ax = __a; \
+     poly8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtstv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 4); \
+     __rv.__o = __builtin_neon_vtstv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 4); \
      __rv.__i; \
    })
 
 #define vabd_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vabdv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vabd_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vabdv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vabd_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vabdv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vabd_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vabdv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vabd_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vabdv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vabd_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vabdv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vabd_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vabdv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vabdq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vabdv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vabdq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vabdv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vabdq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vabdv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vabdq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vabdv4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vabdq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vabdv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vabdq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vabdv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vabdq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vabdv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vabdl_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdlv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vabdlv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vabdl_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdlv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vabdlv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vabdl_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdlv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vabdlv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vabdl_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdlv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vabdlv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vabdl_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdlv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vabdlv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vabdl_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabdlv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vabdlv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vaba_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
+     int8x8_t __cx = __c; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav8qi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vabav8qi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vaba_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav4hi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vabav4hi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vaba_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav2si (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vabav2si (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vaba_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
+     uint8x8_t __cx = __c; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, (__neon_int8x8_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vabav8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vaba_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vabav4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vaba_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, (__neon_int32x2_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vabav2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vabaq_s8(__a, __b, __c) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
+     int8x16_t __cx = __c; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav16qi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vabav16qi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vabaq_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
+     int16x8_t __cx = __c; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav8hi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vabav8hi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vabaq_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
+     int32x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav4si (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vabav4si (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vabaq_u8(__a, __b, __c) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
+     uint8x16_t __cx = __c; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, (__neon_int8x16_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vabav16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, (__neon_int8x16_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vabaq_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
+     uint16x8_t __cx = __c; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, (__neon_int16x8_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vabav8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, (__neon_int16x8_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vabaq_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
+     uint32x4_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabav4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, (__neon_int32x4_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vabav4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, (__neon_int32x4_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vabal_s8(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
+     int8x8_t __cx = __c; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabalv8qi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vabalv8qi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vabal_s16(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabalv4hi (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vabalv4hi (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vabal_s32(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabalv2si (__a.val, __b.val, __c.val, 1); \
+     __rv.__o = __builtin_neon_vabalv2si (__ax.val, __bx.val, __cx.val, 1); \
      __rv.__i; \
    })
 
 #define vabal_u8(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
+     uint8x8_t __cx = __c; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabalv8qi ((__neon_int16x8_t) __a.val, (__neon_int8x8_t) __b.val, (__neon_int8x8_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vabalv8qi ((__neon_int16x8_t) __ax.val, (__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vabal_u16(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabalv4hi ((__neon_int32x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vabalv4hi ((__neon_int32x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vabal_u32(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabalv2si ((__neon_int64x2_t) __a.val, (__neon_int32x2_t) __b.val, (__neon_int32x2_t) __c.val, 0); \
+     __rv.__o = __builtin_neon_vabalv2si ((__neon_int64x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __cx.val, 0); \
      __rv.__i; \
    })
 
 #define vmax_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmaxv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmax_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmaxv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmax_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmaxv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmax_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vmaxv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vmax_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmaxv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmax_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmaxv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmax_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmaxv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmaxq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmaxv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmaxq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmaxv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmaxq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vmaxv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmaxq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vmaxv4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vmaxq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmaxv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmaxq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmaxv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmaxq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmaxv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vmaxv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmin_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vminv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmin_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vminv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmin_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vminv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vmin_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vminv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vmin_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vminv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmin_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vminv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vmin_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vminv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vminq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vminv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vminq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vminv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vminq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vminv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vminq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vminv4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vminq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vminv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vminq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vminv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vminq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vminv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vminv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpadd_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpaddv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpadd_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpaddv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpadd_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpaddv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpadd_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vpaddv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vpadd_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpaddv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpadd_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpaddv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpadd_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpaddv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpaddl_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vpaddlv8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vpaddl_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv4hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vpaddlv4hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vpaddl_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv2si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vpaddlv2si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vpaddl_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv8qi ((__neon_int8x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vpaddlv8qi ((__neon_int8x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vpaddl_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv4hi ((__neon_int16x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vpaddlv4hi ((__neon_int16x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vpaddl_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv2si ((__neon_int32x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vpaddlv2si ((__neon_int32x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vpaddlq_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vpaddlv16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vpaddlq_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vpaddlv8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vpaddlq_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vpaddlv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vpaddlq_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv16qi ((__neon_int8x16_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vpaddlv16qi ((__neon_int8x16_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vpaddlq_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv8hi ((__neon_int16x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vpaddlv8hi ((__neon_int16x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vpaddlq_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpaddlv4si ((__neon_int32x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vpaddlv4si ((__neon_int32x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vpadal_s8(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpadalv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpadal_s16(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpadalv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpadal_s32(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpadalv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpadal_u8(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv8qi ((__neon_int16x4_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpadalv8qi ((__neon_int16x4_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpadal_u16(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv4hi ((__neon_int32x2_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpadalv4hi ((__neon_int32x2_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpadal_u32(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv2si ((__neon_int64x1_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpadalv2si ((__neon_int64x1_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpadalq_s8(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpadalv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpadalq_s16(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpadalv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpadalq_s32(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpadalv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpadalq_u8(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv16qi ((__neon_int16x8_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpadalv16qi ((__neon_int16x8_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpadalq_u16(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv8hi ((__neon_int32x4_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpadalv8hi ((__neon_int32x4_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpadalq_u32(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpadalv4si ((__neon_int64x2_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpadalv4si ((__neon_int64x2_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpmax_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpmaxv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpmaxv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpmax_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpmaxv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpmaxv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpmax_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpmaxv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpmaxv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpmax_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpmaxv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vpmaxv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vpmax_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpmaxv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpmaxv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpmax_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpmaxv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpmaxv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpmax_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpmaxv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpmaxv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpmin_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpminv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpminv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpmin_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpminv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpminv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpmin_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpminv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vpminv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vpmin_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpminv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vpminv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vpmin_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpminv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpminv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpmin_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpminv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpminv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vpmin_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vpminv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vpminv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vrecps_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrecpsv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vrecpsv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vrecpsq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrecpsv4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vrecpsv4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vrsqrts_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrsqrtsv2sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vrsqrtsv2sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vrsqrtsq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrsqrtsv4sf (__a.val, __b.val, 5); \
+     __rv.__o = __builtin_neon_vrsqrtsv4sf (__ax.val, __bx.val, 5); \
      __rv.__i; \
    })
 
 #define vshl_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vshlv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vshl_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vshlv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vshl_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vshlv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vshl_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv1di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vshlv1di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vshl_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv8qi ((__neon_int8x8_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vshlv8qi ((__neon_int8x8_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vshl_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv4hi ((__neon_int16x4_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vshlv4hi ((__neon_int16x4_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vshl_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv2si ((__neon_int32x2_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vshlv2si ((__neon_int32x2_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vshl_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv1di ((__neon_int64x1_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vshlv1di ((__neon_int64x1_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vshlq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vshlv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vshlq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vshlv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vshlq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vshlv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vshlq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vshlv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vshlq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv16qi ((__neon_int8x16_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vshlv16qi ((__neon_int8x16_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vshlq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv8hi ((__neon_int16x8_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vshlv8hi ((__neon_int16x8_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vshlq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv4si ((__neon_int32x4_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vshlv4si ((__neon_int32x4_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vshlq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv2di ((__neon_int64x2_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vshlv2di ((__neon_int64x2_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vrshl_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv8qi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vshlv8qi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrshl_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv4hi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vshlv4hi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrshl_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv2si (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vshlv2si (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrshl_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv1di (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vshlv1di (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrshl_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv8qi ((__neon_int8x8_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vshlv8qi ((__neon_int8x8_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrshl_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv4hi ((__neon_int16x4_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vshlv4hi ((__neon_int16x4_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrshl_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv2si ((__neon_int32x2_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vshlv2si ((__neon_int32x2_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrshl_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv1di ((__neon_int64x1_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vshlv1di ((__neon_int64x1_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrshlq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv16qi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vshlv16qi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrshlq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv8hi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vshlv8hi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrshlq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv4si (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vshlv4si (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrshlq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv2di (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vshlv2di (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vrshlq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv16qi ((__neon_int8x16_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vshlv16qi ((__neon_int8x16_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrshlq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv8hi ((__neon_int16x8_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vshlv8hi ((__neon_int16x8_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrshlq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv4si ((__neon_int32x4_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vshlv4si ((__neon_int32x4_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vrshlq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshlv2di ((__neon_int64x2_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vshlv2di ((__neon_int64x2_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vqshl_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqshlv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqshl_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqshlv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqshl_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqshlv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqshl_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv1di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqshlv1di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqshl_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv8qi ((__neon_int8x8_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vqshlv8qi ((__neon_int8x8_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqshl_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv4hi ((__neon_int16x4_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vqshlv4hi ((__neon_int16x4_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqshl_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv2si ((__neon_int32x2_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vqshlv2si ((__neon_int32x2_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqshl_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv1di ((__neon_int64x1_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vqshlv1di ((__neon_int64x1_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqshlq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqshlv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqshlq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqshlv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqshlq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqshlv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqshlq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vqshlv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vqshlq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv16qi ((__neon_int8x16_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vqshlv16qi ((__neon_int8x16_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqshlq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv8hi ((__neon_int16x8_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vqshlv8hi ((__neon_int16x8_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqshlq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv4si ((__neon_int32x4_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vqshlv4si ((__neon_int32x4_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqshlq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv2di ((__neon_int64x2_t) __a.val, __b.val, 0); \
+     __rv.__o = __builtin_neon_vqshlv2di ((__neon_int64x2_t) __ax.val, __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vqrshl_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv8qi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqshlv8qi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vqrshl_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv4hi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqshlv4hi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vqrshl_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv2si (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqshlv2si (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vqrshl_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv1di (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqshlv1di (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vqrshl_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv8qi ((__neon_int8x8_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vqshlv8qi ((__neon_int8x8_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vqrshl_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv4hi ((__neon_int16x4_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vqshlv4hi ((__neon_int16x4_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vqrshl_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv2si ((__neon_int32x2_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vqshlv2si ((__neon_int32x2_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vqrshl_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv1di ((__neon_int64x1_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vqshlv1di ((__neon_int64x1_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vqrshlq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv16qi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqshlv16qi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vqrshlq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv8hi (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqshlv8hi (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vqrshlq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv4si (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqshlv4si (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vqrshlq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv2di (__a.val, __b.val, 3); \
+     __rv.__o = __builtin_neon_vqshlv2di (__ax.val, __bx.val, 3); \
      __rv.__i; \
    })
 
 #define vqrshlq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv16qi ((__neon_int8x16_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vqshlv16qi ((__neon_int8x16_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vqrshlq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv8hi ((__neon_int16x8_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vqshlv8hi ((__neon_int16x8_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vqrshlq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv4si ((__neon_int32x4_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vqshlv4si ((__neon_int32x4_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vqrshlq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlv2di ((__neon_int64x2_t) __a.val, __b.val, 2); \
+     __rv.__o = __builtin_neon_vqshlv2di ((__neon_int64x2_t) __ax.val, __bx.val, 2); \
      __rv.__i; \
    })
 
 #define vshr_n_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv8qi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshr_nv8qi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshr_n_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv4hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshr_nv4hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshr_n_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv2si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshr_nv2si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshr_n_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv1di (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshr_nv1di (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshr_n_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv8qi ((__neon_int8x8_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshr_nv8qi ((__neon_int8x8_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshr_n_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv4hi ((__neon_int16x4_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshr_nv4hi ((__neon_int16x4_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshr_n_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv2si ((__neon_int32x2_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshr_nv2si ((__neon_int32x2_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshr_n_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv1di ((__neon_int64x1_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshr_nv1di ((__neon_int64x1_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshrq_n_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv16qi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshr_nv16qi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshrq_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv8hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshr_nv8hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshrq_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv4si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshr_nv4si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshrq_n_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv2di (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshr_nv2di (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshrq_n_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv16qi ((__neon_int8x16_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshr_nv16qi ((__neon_int8x16_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshrq_n_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv8hi ((__neon_int16x8_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshr_nv8hi ((__neon_int16x8_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshrq_n_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv4si ((__neon_int32x4_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshr_nv4si ((__neon_int32x4_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshrq_n_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv2di ((__neon_int64x2_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshr_nv2di ((__neon_int64x2_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vrshr_n_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv8qi (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vshr_nv8qi (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vrshr_n_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv4hi (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vshr_nv4hi (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vrshr_n_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv2si (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vshr_nv2si (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vrshr_n_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv1di (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vshr_nv1di (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vrshr_n_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv8qi ((__neon_int8x8_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vshr_nv8qi ((__neon_int8x8_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vrshr_n_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv4hi ((__neon_int16x4_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vshr_nv4hi ((__neon_int16x4_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vrshr_n_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv2si ((__neon_int32x2_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vshr_nv2si ((__neon_int32x2_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vrshr_n_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv1di ((__neon_int64x1_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vshr_nv1di ((__neon_int64x1_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vrshrq_n_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv16qi (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vshr_nv16qi (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vrshrq_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv8hi (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vshr_nv8hi (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vrshrq_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv4si (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vshr_nv4si (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vrshrq_n_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv2di (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vshr_nv2di (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vrshrq_n_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv16qi ((__neon_int8x16_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vshr_nv16qi ((__neon_int8x16_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vrshrq_n_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv8hi ((__neon_int16x8_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vshr_nv8hi ((__neon_int16x8_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vrshrq_n_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv4si ((__neon_int32x4_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vshr_nv4si ((__neon_int32x4_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vrshrq_n_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshr_nv2di ((__neon_int64x2_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vshr_nv2di ((__neon_int64x2_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vshrn_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv8hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshrn_nv8hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshrn_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv4si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshrn_nv4si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshrn_n_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv2di (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshrn_nv2di (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshrn_n_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv8hi ((__neon_int16x8_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshrn_nv8hi ((__neon_int16x8_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshrn_n_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv4si ((__neon_int32x4_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshrn_nv4si ((__neon_int32x4_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshrn_n_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv2di ((__neon_int64x2_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshrn_nv2di ((__neon_int64x2_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vrshrn_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv8hi (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vshrn_nv8hi (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vrshrn_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv4si (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vshrn_nv4si (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vrshrn_n_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv2di (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vshrn_nv2di (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vrshrn_n_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv8hi ((__neon_int16x8_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vshrn_nv8hi ((__neon_int16x8_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vrshrn_n_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv4si ((__neon_int32x4_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vshrn_nv4si ((__neon_int32x4_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vrshrn_n_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshrn_nv2di ((__neon_int64x2_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vshrn_nv2di ((__neon_int64x2_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vqshrn_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv8hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshrn_nv8hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshrn_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv4si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshrn_nv4si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshrn_n_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv2di (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshrn_nv2di (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshrn_n_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv8hi ((__neon_int16x8_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vqshrn_nv8hi ((__neon_int16x8_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqshrn_n_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv4si ((__neon_int32x4_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vqshrn_nv4si ((__neon_int32x4_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqshrn_n_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv2di ((__neon_int64x2_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vqshrn_nv2di ((__neon_int64x2_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqrshrn_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv8hi (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vqshrn_nv8hi (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vqrshrn_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv4si (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vqshrn_nv4si (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vqrshrn_n_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv2di (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vqshrn_nv2di (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vqrshrn_n_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv8hi ((__neon_int16x8_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vqshrn_nv8hi ((__neon_int16x8_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vqrshrn_n_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv4si ((__neon_int32x4_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vqshrn_nv4si ((__neon_int32x4_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vqrshrn_n_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrn_nv2di ((__neon_int64x2_t) __a.val, __b, 2); \
+     __rv.__o = __builtin_neon_vqshrn_nv2di ((__neon_int64x2_t) __ax.val, __b, 2); \
      __rv.__i; \
    })
 
 #define vqshrun_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrun_nv8hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshrun_nv8hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshrun_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrun_nv4si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshrun_nv4si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshrun_n_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrun_nv2di (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshrun_nv2di (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqrshrun_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrun_nv8hi (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vqshrun_nv8hi (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vqrshrun_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrun_nv4si (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vqshrun_nv4si (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vqrshrun_n_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshrun_nv2di (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vqshrun_nv2di (__ax.val, __b, 3); \
      __rv.__i; \
    })
 
 #define vshl_n_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv8qi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshl_nv8qi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshl_n_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv4hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshl_nv4hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshl_n_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv2si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshl_nv2si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshl_n_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv1di (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshl_nv1di (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshl_n_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv8qi ((__neon_int8x8_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshl_nv8qi ((__neon_int8x8_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshl_n_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv4hi ((__neon_int16x4_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshl_nv4hi ((__neon_int16x4_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshl_n_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv2si ((__neon_int32x2_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshl_nv2si ((__neon_int32x2_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshl_n_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv1di ((__neon_int64x1_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshl_nv1di ((__neon_int64x1_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshlq_n_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv16qi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshl_nv16qi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshlq_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv8hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshl_nv8hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshlq_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv4si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshl_nv4si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshlq_n_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv2di (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshl_nv2di (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshlq_n_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv16qi ((__neon_int8x16_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshl_nv16qi ((__neon_int8x16_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshlq_n_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv8hi ((__neon_int16x8_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshl_nv8hi ((__neon_int16x8_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshlq_n_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv4si ((__neon_int32x4_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshl_nv4si ((__neon_int32x4_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshlq_n_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshl_nv2di ((__neon_int64x2_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshl_nv2di ((__neon_int64x2_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqshl_n_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv8qi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshl_nv8qi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshl_n_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv4hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshl_nv4hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshl_n_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv2si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshl_nv2si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshl_n_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv1di (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshl_nv1di (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshl_n_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv8qi ((__neon_int8x8_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vqshl_nv8qi ((__neon_int8x8_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqshl_n_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv4hi ((__neon_int16x4_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vqshl_nv4hi ((__neon_int16x4_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqshl_n_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv2si ((__neon_int32x2_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vqshl_nv2si ((__neon_int32x2_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqshl_n_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv1di ((__neon_int64x1_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vqshl_nv1di ((__neon_int64x1_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqshlq_n_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv16qi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshl_nv16qi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshlq_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv8hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshl_nv8hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshlq_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv4si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshl_nv4si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshlq_n_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv2di (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshl_nv2di (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshlq_n_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv16qi ((__neon_int8x16_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vqshl_nv16qi ((__neon_int8x16_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqshlq_n_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv8hi ((__neon_int16x8_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vqshl_nv8hi ((__neon_int16x8_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqshlq_n_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv4si ((__neon_int32x4_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vqshl_nv4si ((__neon_int32x4_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqshlq_n_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshl_nv2di ((__neon_int64x2_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vqshl_nv2di ((__neon_int64x2_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vqshlu_n_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlu_nv8qi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshlu_nv8qi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshlu_n_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlu_nv4hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshlu_nv4hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshlu_n_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlu_nv2si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshlu_nv2si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshlu_n_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlu_nv1di (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshlu_nv1di (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshluq_n_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlu_nv16qi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshlu_nv16qi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshluq_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlu_nv8hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshlu_nv8hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshluq_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlu_nv4si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshlu_nv4si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vqshluq_n_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqshlu_nv2di (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqshlu_nv2di (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshll_n_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshll_nv8qi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshll_nv8qi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshll_n_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshll_nv4hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshll_nv4hi (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshll_n_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshll_nv2si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vshll_nv2si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vshll_n_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshll_nv8qi ((__neon_int8x8_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshll_nv8qi ((__neon_int8x8_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshll_n_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshll_nv4hi ((__neon_int16x4_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshll_nv4hi ((__neon_int16x4_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vshll_n_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vshll_nv2si ((__neon_int32x2_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vshll_nv2si ((__neon_int32x2_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vsra_n_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv8qi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vsra_nv8qi (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vsra_n_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv4hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vsra_nv4hi (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vsra_n_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv2si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vsra_nv2si (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vsra_n_s64(__a, __b, __c) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv1di (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vsra_nv1di (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vsra_n_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vsra_nv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vsra_n_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vsra_nv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vsra_n_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vsra_nv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vsra_n_u64(__a, __b, __c) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vsra_nv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vsraq_n_s8(__a, __b, __c) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv16qi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vsra_nv16qi (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vsraq_n_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv8hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vsra_nv8hi (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vsraq_n_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv4si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vsra_nv4si (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vsraq_n_s64(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv2di (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vsra_nv2di (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vsraq_n_u8(__a, __b, __c) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vsra_nv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vsraq_n_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vsra_nv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vsraq_n_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vsra_nv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vsraq_n_u64(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vsra_nv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vrsra_n_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv8qi (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vsra_nv8qi (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vrsra_n_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv4hi (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vsra_nv4hi (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vrsra_n_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv2si (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vsra_nv2si (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vrsra_n_s64(__a, __b, __c) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv1di (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vsra_nv1di (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vrsra_n_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, __c, 2); \
+     __rv.__o = __builtin_neon_vsra_nv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, __c, 2); \
      __rv.__i; \
    })
 
 #define vrsra_n_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, __c, 2); \
+     __rv.__o = __builtin_neon_vsra_nv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, __c, 2); \
      __rv.__i; \
    })
 
 #define vrsra_n_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, __c, 2); \
+     __rv.__o = __builtin_neon_vsra_nv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, __c, 2); \
      __rv.__i; \
    })
 
 #define vrsra_n_u64(__a, __b, __c) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, __c, 2); \
+     __rv.__o = __builtin_neon_vsra_nv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, __c, 2); \
      __rv.__i; \
    })
 
 #define vrsraq_n_s8(__a, __b, __c) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv16qi (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vsra_nv16qi (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vrsraq_n_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv8hi (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vsra_nv8hi (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vrsraq_n_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv4si (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vsra_nv4si (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vrsraq_n_s64(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv2di (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vsra_nv2di (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vrsraq_n_u8(__a, __b, __c) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, __c, 2); \
+     __rv.__o = __builtin_neon_vsra_nv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, __c, 2); \
      __rv.__i; \
    })
 
 #define vrsraq_n_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, __c, 2); \
+     __rv.__o = __builtin_neon_vsra_nv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, __c, 2); \
      __rv.__i; \
    })
 
 #define vrsraq_n_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, __c, 2); \
+     __rv.__o = __builtin_neon_vsra_nv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, __c, 2); \
      __rv.__i; \
    })
 
 #define vrsraq_n_u64(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsra_nv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, __c, 2); \
+     __rv.__o = __builtin_neon_vsra_nv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, __c, 2); \
      __rv.__i; \
    })
 
 #define vsri_n_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv8qi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv8qi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsri_n_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv4hi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv4hi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsri_n_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv2si (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv2si (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsri_n_s64(__a, __b, __c) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv1di (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv1di (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsri_n_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsri_n_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsri_n_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsri_n_u64(__a, __b, __c) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsri_n_p8(__a, __b, __c) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsri_n_p16(__a, __b, __c) \
   ({ \
+     poly16x4_t __ax = __a; \
+     poly16x4_t __bx = __b; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsriq_n_s8(__a, __b, __c) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv16qi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv16qi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsriq_n_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv8hi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv8hi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsriq_n_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv4si (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv4si (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsriq_n_s64(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv2di (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv2di (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsriq_n_u8(__a, __b, __c) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsriq_n_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsriq_n_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsriq_n_u64(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsriq_n_p8(__a, __b, __c) \
   ({ \
+     poly8x16_t __ax = __a; \
+     poly8x16_t __bx = __b; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsriq_n_p16(__a, __b, __c) \
   ({ \
+     poly16x8_t __ax = __a; \
+     poly16x8_t __bx = __b; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsri_nv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsri_nv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsli_n_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv8qi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv8qi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsli_n_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv4hi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv4hi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsli_n_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv2si (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv2si (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsli_n_s64(__a, __b, __c) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv1di (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv1di (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsli_n_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsli_n_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsli_n_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsli_n_u64(__a, __b, __c) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsli_n_p8(__a, __b, __c) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsli_n_p16(__a, __b, __c) \
   ({ \
+     poly16x4_t __ax = __a; \
+     poly16x4_t __bx = __b; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsliq_n_s8(__a, __b, __c) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv16qi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv16qi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsliq_n_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv8hi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv8hi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsliq_n_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv4si (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv4si (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsliq_n_s64(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv2di (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv2di (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsliq_n_u8(__a, __b, __c) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsliq_n_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsliq_n_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsliq_n_u64(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsliq_n_p8(__a, __b, __c) \
   ({ \
+     poly8x16_t __ax = __a; \
+     poly8x16_t __bx = __b; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsliq_n_p16(__a, __b, __c) \
   ({ \
+     poly16x8_t __ax = __a; \
+     poly16x8_t __bx = __b; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vsli_nv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vsli_nv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vabs_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabsv8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vabsv8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vabs_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabsv4hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vabsv4hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vabs_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabsv2si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vabsv2si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vabs_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabsv2sf (__a.val, 5); \
+     __rv.__o = __builtin_neon_vabsv2sf (__ax.val, 5); \
      __rv.__i; \
    })
 
 #define vabsq_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabsv16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vabsv16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vabsq_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabsv8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vabsv8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vabsq_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabsv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vabsv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vabsq_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vabsv4sf (__a.val, 5); \
+     __rv.__o = __builtin_neon_vabsv4sf (__ax.val, 5); \
      __rv.__i; \
    })
 
 #define vqabs_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqabsv8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqabsv8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqabs_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqabsv4hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqabsv4hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqabs_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqabsv2si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqabsv2si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqabsq_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqabsv16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqabsv16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqabsq_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqabsv8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqabsv8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqabsq_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqabsv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqabsv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vneg_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vnegv8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vnegv8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vneg_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vnegv4hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vnegv4hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vneg_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vnegv2si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vnegv2si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vneg_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vnegv2sf (__a.val, 5); \
+     __rv.__o = __builtin_neon_vnegv2sf (__ax.val, 5); \
      __rv.__i; \
    })
 
 #define vnegq_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vnegv16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vnegv16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vnegq_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vnegv8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vnegv8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vnegq_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vnegv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vnegv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vnegq_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vnegv4sf (__a.val, 5); \
+     __rv.__o = __builtin_neon_vnegv4sf (__ax.val, 5); \
      __rv.__i; \
    })
 
 #define vqneg_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqnegv8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqnegv8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqneg_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqnegv4hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqnegv4hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqneg_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqnegv2si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqnegv2si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqnegq_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqnegv16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqnegv16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqnegq_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqnegv8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqnegv8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqnegq_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqnegv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqnegv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmvn_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmvnv8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmvn_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv4hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmvnv4hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmvn_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv2si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmvnv2si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmvn_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv8qi ((__neon_int8x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmvnv8qi ((__neon_int8x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vmvn_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv4hi ((__neon_int16x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmvnv4hi ((__neon_int16x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vmvn_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv2si ((__neon_int32x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmvnv2si ((__neon_int32x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vmvn_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv8qi ((__neon_int8x8_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vmvnv8qi ((__neon_int8x8_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vmvnq_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmvnv16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmvnq_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmvnv8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmvnq_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmvnv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmvnq_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv16qi ((__neon_int8x16_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmvnv16qi ((__neon_int8x16_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vmvnq_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv8hi ((__neon_int16x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmvnv8hi ((__neon_int16x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vmvnq_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv4si ((__neon_int32x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmvnv4si ((__neon_int32x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vmvnq_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmvnv16qi ((__neon_int8x16_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vmvnv16qi ((__neon_int8x16_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vcls_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclsv8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclsv8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcls_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclsv4hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclsv4hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcls_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclsv2si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclsv2si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclsq_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclsv16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclsv16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclsq_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclsv8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclsv8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclsq_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclsv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclsv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclz_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclzv8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclz_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv4hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclzv4hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclz_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv2si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclzv2si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclz_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv8qi ((__neon_int8x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vclzv8qi ((__neon_int8x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vclz_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv4hi ((__neon_int16x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vclzv4hi ((__neon_int16x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vclz_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv2si ((__neon_int32x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vclzv2si ((__neon_int32x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vclzq_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclzv16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclzq_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclzv8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclzq_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vclzv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vclzq_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv16qi ((__neon_int8x16_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vclzv16qi ((__neon_int8x16_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vclzq_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv8hi ((__neon_int16x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vclzv8hi ((__neon_int16x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vclzq_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vclzv4si ((__neon_int32x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vclzv4si ((__neon_int32x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcnt_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcntv8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vcntv8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcnt_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcntv8qi ((__neon_int8x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcntv8qi ((__neon_int8x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcnt_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcntv8qi ((__neon_int8x8_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vcntv8qi ((__neon_int8x8_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vcntq_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcntv16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vcntv16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcntq_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcntv16qi ((__neon_int8x16_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcntv16qi ((__neon_int8x16_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcntq_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcntv16qi ((__neon_int8x16_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vcntv16qi ((__neon_int8x16_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vrecpe_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrecpev2sf (__a.val, 5); \
+     __rv.__o = __builtin_neon_vrecpev2sf (__ax.val, 5); \
      __rv.__i; \
    })
 
 #define vrecpe_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrecpev2si ((__neon_int32x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrecpev2si ((__neon_int32x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrecpeq_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrecpev4sf (__a.val, 5); \
+     __rv.__o = __builtin_neon_vrecpev4sf (__ax.val, 5); \
      __rv.__i; \
    })
 
 #define vrecpeq_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrecpev4si ((__neon_int32x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrecpev4si ((__neon_int32x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrsqrte_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrsqrtev2sf (__a.val, 5); \
+     __rv.__o = __builtin_neon_vrsqrtev2sf (__ax.val, 5); \
      __rv.__i; \
    })
 
 #define vrsqrte_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrsqrtev2si ((__neon_int32x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrsqrtev2si ((__neon_int32x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrsqrteq_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrsqrtev4sf (__a.val, 5); \
+     __rv.__o = __builtin_neon_vrsqrtev4sf (__ax.val, 5); \
      __rv.__i; \
    })
 
 #define vrsqrteq_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrsqrtev4si ((__neon_int32x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrsqrtev4si ((__neon_int32x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vget_lane_s8(__a, __b) \
-  (int8_t)__builtin_neon_vget_lanev8qi (__a.val, __b, 1)
+  ({ \
+     int8x8_t __ax = __a; \
+     (int8_t)__builtin_neon_vget_lanev8qi (__ax.val, __b, 1); \
+   })
 
 #define vget_lane_s16(__a, __b) \
-  (int16_t)__builtin_neon_vget_lanev4hi (__a.val, __b, 1)
+  ({ \
+     int16x4_t __ax = __a; \
+     (int16_t)__builtin_neon_vget_lanev4hi (__ax.val, __b, 1); \
+   })
 
 #define vget_lane_s32(__a, __b) \
-  (int32_t)__builtin_neon_vget_lanev2si (__a.val, __b, 1)
+  ({ \
+     int32x2_t __ax = __a; \
+     (int32_t)__builtin_neon_vget_lanev2si (__ax.val, __b, 1); \
+   })
 
 #define vget_lane_f32(__a, __b) \
-  (float32_t)__builtin_neon_vget_lanev2sf (__a.val, __b, 5)
+  ({ \
+     float32x2_t __ax = __a; \
+     (float32_t)__builtin_neon_vget_lanev2sf (__ax.val, __b, 5); \
+   })
 
 #define vget_lane_u8(__a, __b) \
-  (uint8_t)__builtin_neon_vget_lanev8qi ((__neon_int8x8_t) __a.val, __b, 0)
+  ({ \
+     uint8x8_t __ax = __a; \
+     (uint8_t)__builtin_neon_vget_lanev8qi ((__neon_int8x8_t) __ax.val, __b, 0); \
+   })
 
 #define vget_lane_u16(__a, __b) \
-  (uint16_t)__builtin_neon_vget_lanev4hi ((__neon_int16x4_t) __a.val, __b, 0)
+  ({ \
+     uint16x4_t __ax = __a; \
+     (uint16_t)__builtin_neon_vget_lanev4hi ((__neon_int16x4_t) __ax.val, __b, 0); \
+   })
 
 #define vget_lane_u32(__a, __b) \
-  (uint32_t)__builtin_neon_vget_lanev2si ((__neon_int32x2_t) __a.val, __b, 0)
+  ({ \
+     uint32x2_t __ax = __a; \
+     (uint32_t)__builtin_neon_vget_lanev2si ((__neon_int32x2_t) __ax.val, __b, 0); \
+   })
 
 #define vget_lane_p8(__a, __b) \
-  (poly8_t)__builtin_neon_vget_lanev8qi ((__neon_int8x8_t) __a.val, __b, 4)
+  ({ \
+     poly8x8_t __ax = __a; \
+     (poly8_t)__builtin_neon_vget_lanev8qi ((__neon_int8x8_t) __ax.val, __b, 4); \
+   })
 
 #define vget_lane_p16(__a, __b) \
-  (poly16_t)__builtin_neon_vget_lanev4hi ((__neon_int16x4_t) __a.val, __b, 4)
+  ({ \
+     poly16x4_t __ax = __a; \
+     (poly16_t)__builtin_neon_vget_lanev4hi ((__neon_int16x4_t) __ax.val, __b, 4); \
+   })
 
 #define vget_lane_s64(__a, __b) \
-  (int64_t)__builtin_neon_vget_lanev1di (__a.val, __b, 1)
+  ({ \
+     int64x1_t __ax = __a; \
+     (int64_t)__builtin_neon_vget_lanev1di (__ax.val, __b, 1); \
+   })
 
 #define vget_lane_u64(__a, __b) \
-  (uint64_t)__builtin_neon_vget_lanev1di ((__neon_int64x1_t) __a.val, __b, 0)
+  ({ \
+     uint64x1_t __ax = __a; \
+     (uint64_t)__builtin_neon_vget_lanev1di ((__neon_int64x1_t) __ax.val, __b, 0); \
+   })
 
 #define vgetq_lane_s8(__a, __b) \
-  (int8_t)__builtin_neon_vget_lanev16qi (__a.val, __b, 1)
+  ({ \
+     int8x16_t __ax = __a; \
+     (int8_t)__builtin_neon_vget_lanev16qi (__ax.val, __b, 1); \
+   })
 
 #define vgetq_lane_s16(__a, __b) \
-  (int16_t)__builtin_neon_vget_lanev8hi (__a.val, __b, 1)
+  ({ \
+     int16x8_t __ax = __a; \
+     (int16_t)__builtin_neon_vget_lanev8hi (__ax.val, __b, 1); \
+   })
 
 #define vgetq_lane_s32(__a, __b) \
-  (int32_t)__builtin_neon_vget_lanev4si (__a.val, __b, 1)
+  ({ \
+     int32x4_t __ax = __a; \
+     (int32_t)__builtin_neon_vget_lanev4si (__ax.val, __b, 1); \
+   })
 
 #define vgetq_lane_f32(__a, __b) \
-  (float32_t)__builtin_neon_vget_lanev4sf (__a.val, __b, 5)
+  ({ \
+     float32x4_t __ax = __a; \
+     (float32_t)__builtin_neon_vget_lanev4sf (__ax.val, __b, 5); \
+   })
 
 #define vgetq_lane_u8(__a, __b) \
-  (uint8_t)__builtin_neon_vget_lanev16qi ((__neon_int8x16_t) __a.val, __b, 0)
+  ({ \
+     uint8x16_t __ax = __a; \
+     (uint8_t)__builtin_neon_vget_lanev16qi ((__neon_int8x16_t) __ax.val, __b, 0); \
+   })
 
 #define vgetq_lane_u16(__a, __b) \
-  (uint16_t)__builtin_neon_vget_lanev8hi ((__neon_int16x8_t) __a.val, __b, 0)
+  ({ \
+     uint16x8_t __ax = __a; \
+     (uint16_t)__builtin_neon_vget_lanev8hi ((__neon_int16x8_t) __ax.val, __b, 0); \
+   })
 
 #define vgetq_lane_u32(__a, __b) \
-  (uint32_t)__builtin_neon_vget_lanev4si ((__neon_int32x4_t) __a.val, __b, 0)
+  ({ \
+     uint32x4_t __ax = __a; \
+     (uint32_t)__builtin_neon_vget_lanev4si ((__neon_int32x4_t) __ax.val, __b, 0); \
+   })
 
 #define vgetq_lane_p8(__a, __b) \
-  (poly8_t)__builtin_neon_vget_lanev16qi ((__neon_int8x16_t) __a.val, __b, 4)
+  ({ \
+     poly8x16_t __ax = __a; \
+     (poly8_t)__builtin_neon_vget_lanev16qi ((__neon_int8x16_t) __ax.val, __b, 4); \
+   })
 
 #define vgetq_lane_p16(__a, __b) \
-  (poly16_t)__builtin_neon_vget_lanev8hi ((__neon_int16x8_t) __a.val, __b, 4)
+  ({ \
+     poly16x8_t __ax = __a; \
+     (poly16_t)__builtin_neon_vget_lanev8hi ((__neon_int16x8_t) __ax.val, __b, 4); \
+   })
 
 #define vgetq_lane_s64(__a, __b) \
-  (int64_t)__builtin_neon_vget_lanev2di (__a.val, __b, 1)
+  ({ \
+     int64x2_t __ax = __a; \
+     (int64_t)__builtin_neon_vget_lanev2di (__ax.val, __b, 1); \
+   })
 
 #define vgetq_lane_u64(__a, __b) \
-  (uint64_t)__builtin_neon_vget_lanev2di ((__neon_int64x2_t) __a.val, __b, 0)
+  ({ \
+     uint64x2_t __ax = __a; \
+     (uint64_t)__builtin_neon_vget_lanev2di ((__neon_int64x2_t) __ax.val, __b, 0); \
+   })
 
 #define vset_lane_s8(__a, __b, __c) \
   ({ \
+     int8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev8qi (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vset_lane_s16(__a, __b, __c) \
   ({ \
+     int16_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev4hi (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vset_lane_s32(__a, __b, __c) \
   ({ \
+     int32_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev2si (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev2si ((__builtin_neon_si) __ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vset_lane_f32(__a, __b, __c) \
   ({ \
+     float32_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev2sf (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev2sf (__ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vset_lane_u8(__a, __b, __c) \
   ({ \
+     uint8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev8qi ((int8_t) __a, (__neon_int8x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __ax, (__neon_int8x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vset_lane_u16(__a, __b, __c) \
   ({ \
+     uint16_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev4hi ((int16_t) __a, (__neon_int16x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __ax, (__neon_int16x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vset_lane_u32(__a, __b, __c) \
   ({ \
+     uint32_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev2si ((int32_t) __a, (__neon_int32x2_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev2si ((__builtin_neon_si) __ax, (__neon_int32x2_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vset_lane_p8(__a, __b, __c) \
   ({ \
+     poly8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev8qi ((int8_t) __a, (__neon_int8x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev8qi ((__builtin_neon_qi) __ax, (__neon_int8x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vset_lane_p16(__a, __b, __c) \
   ({ \
+     poly16_t __ax = __a; \
+     poly16x4_t __bx = __b; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev4hi ((int16_t) __a, (__neon_int16x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev4hi ((__builtin_neon_hi) __ax, (__neon_int16x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vset_lane_s64(__a, __b, __c) \
   ({ \
+     int64_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev1di (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev1di ((__builtin_neon_di) __ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vset_lane_u64(__a, __b, __c) \
   ({ \
+     uint64_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev1di ((int64_t) __a, (__neon_int64x1_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev1di ((__builtin_neon_di) __ax, (__neon_int64x1_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsetq_lane_s8(__a, __b, __c) \
   ({ \
+     int8_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev16qi (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsetq_lane_s16(__a, __b, __c) \
   ({ \
+     int16_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev8hi (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsetq_lane_s32(__a, __b, __c) \
   ({ \
+     int32_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev4si (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev4si ((__builtin_neon_si) __ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsetq_lane_f32(__a, __b, __c) \
   ({ \
+     float32_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev4sf (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev4sf (__ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsetq_lane_u8(__a, __b, __c) \
   ({ \
+     uint8_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev16qi ((int8_t) __a, (__neon_int8x16_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __ax, (__neon_int8x16_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsetq_lane_u16(__a, __b, __c) \
   ({ \
+     uint16_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev8hi ((int16_t) __a, (__neon_int16x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __ax, (__neon_int16x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsetq_lane_u32(__a, __b, __c) \
   ({ \
+     uint32_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev4si ((int32_t) __a, (__neon_int32x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev4si ((__builtin_neon_si) __ax, (__neon_int32x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsetq_lane_p8(__a, __b, __c) \
   ({ \
+     poly8_t __ax = __a; \
+     poly8x16_t __bx = __b; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev16qi ((int8_t) __a, (__neon_int8x16_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev16qi ((__builtin_neon_qi) __ax, (__neon_int8x16_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsetq_lane_p16(__a, __b, __c) \
   ({ \
+     poly16_t __ax = __a; \
+     poly16x8_t __bx = __b; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev8hi ((int16_t) __a, (__neon_int16x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev8hi ((__builtin_neon_hi) __ax, (__neon_int16x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsetq_lane_s64(__a, __b, __c) \
   ({ \
+     int64_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev2di (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev2di ((__builtin_neon_di) __ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vsetq_lane_u64(__a, __b, __c) \
   ({ \
+     uint64_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vset_lanev2di ((int64_t) __a, (__neon_int64x2_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vset_lanev2di ((__builtin_neon_di) __ax, (__neon_int64x2_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vcreate_s8(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcreatev8qi ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vcreatev8qi ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vcreate_s16(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcreatev4hi ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vcreatev4hi ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vcreate_s32(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcreatev2si ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vcreatev2si ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vcreate_s64(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcreatev1di ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vcreatev1di ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vcreate_f32(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcreatev2sf ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vcreatev2sf ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vcreate_u8(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcreatev8qi ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vcreatev8qi ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vcreate_u16(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcreatev4hi ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vcreatev4hi ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vcreate_u32(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcreatev2si ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vcreatev2si ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vcreate_u64(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcreatev1di ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vcreatev1di ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vcreate_p8(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcreatev8qi ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vcreatev8qi ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vcreate_p16(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcreatev4hi ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vcreatev4hi ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vdup_n_s8(__a) \
   ({ \
+     int8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8qi (__a); \
+     __rv.__o = __builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vdup_n_s16(__a) \
   ({ \
+     int16_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4hi (__a); \
+     __rv.__o = __builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vdup_n_s32(__a) \
   ({ \
+     int32_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv2si (__a); \
+     __rv.__o = __builtin_neon_vdup_nv2si ((__builtin_neon_si) __ax); \
      __rv.__i; \
    })
 
 #define vdup_n_f32(__a) \
   ({ \
+     float32_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv2sf (__a); \
+     __rv.__o = __builtin_neon_vdup_nv2sf (__ax); \
      __rv.__i; \
    })
 
 #define vdup_n_u8(__a) \
   ({ \
+     uint8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8qi ((int8_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vdup_n_u16(__a) \
   ({ \
+     uint16_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4hi ((int16_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vdup_n_u32(__a) \
   ({ \
+     uint32_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv2si ((int32_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv2si ((__builtin_neon_si) __ax); \
      __rv.__i; \
    })
 
 #define vdup_n_p8(__a) \
   ({ \
+     poly8_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8qi ((int8_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vdup_n_p16(__a) \
   ({ \
+     poly16_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4hi ((int16_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vdup_n_s64(__a) \
   ({ \
+     int64_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv1di (__a); \
+     __rv.__o = __builtin_neon_vdup_nv1di ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vdup_n_u64(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv1di ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv1di ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vdupq_n_s8(__a) \
   ({ \
+     int8_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv16qi (__a); \
+     __rv.__o = __builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vdupq_n_s16(__a) \
   ({ \
+     int16_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8hi (__a); \
+     __rv.__o = __builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vdupq_n_s32(__a) \
   ({ \
+     int32_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4si (__a); \
+     __rv.__o = __builtin_neon_vdup_nv4si ((__builtin_neon_si) __ax); \
      __rv.__i; \
    })
 
 #define vdupq_n_f32(__a) \
   ({ \
+     float32_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4sf (__a); \
+     __rv.__o = __builtin_neon_vdup_nv4sf (__ax); \
      __rv.__i; \
    })
 
 #define vdupq_n_u8(__a) \
   ({ \
+     uint8_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv16qi ((int8_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vdupq_n_u16(__a) \
   ({ \
+     uint16_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8hi ((int16_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vdupq_n_u32(__a) \
   ({ \
+     uint32_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4si ((int32_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv4si ((__builtin_neon_si) __ax); \
      __rv.__i; \
    })
 
 #define vdupq_n_p8(__a) \
   ({ \
+     poly8_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv16qi ((int8_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vdupq_n_p16(__a) \
   ({ \
+     poly16_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8hi ((int16_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vdupq_n_s64(__a) \
   ({ \
+     int64_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv2di (__a); \
+     __rv.__o = __builtin_neon_vdup_nv2di ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vdupq_n_u64(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv2di ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv2di ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vmov_n_s8(__a) \
   ({ \
+     int8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8qi (__a); \
+     __rv.__o = __builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vmov_n_s16(__a) \
   ({ \
+     int16_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4hi (__a); \
+     __rv.__o = __builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vmov_n_s32(__a) \
   ({ \
+     int32_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv2si (__a); \
+     __rv.__o = __builtin_neon_vdup_nv2si ((__builtin_neon_si) __ax); \
      __rv.__i; \
    })
 
 #define vmov_n_f32(__a) \
   ({ \
+     float32_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv2sf (__a); \
+     __rv.__o = __builtin_neon_vdup_nv2sf (__ax); \
      __rv.__i; \
    })
 
 #define vmov_n_u8(__a) \
   ({ \
+     uint8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8qi ((int8_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vmov_n_u16(__a) \
   ({ \
+     uint16_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4hi ((int16_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vmov_n_u32(__a) \
   ({ \
+     uint32_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv2si ((int32_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv2si ((__builtin_neon_si) __ax); \
      __rv.__i; \
    })
 
 #define vmov_n_p8(__a) \
   ({ \
+     poly8_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8qi ((int8_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv8qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vmov_n_p16(__a) \
   ({ \
+     poly16_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4hi ((int16_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv4hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vmov_n_s64(__a) \
   ({ \
+     int64_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv1di (__a); \
+     __rv.__o = __builtin_neon_vdup_nv1di ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vmov_n_u64(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv1di ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv1di ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vmovq_n_s8(__a) \
   ({ \
+     int8_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv16qi (__a); \
+     __rv.__o = __builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vmovq_n_s16(__a) \
   ({ \
+     int16_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8hi (__a); \
+     __rv.__o = __builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vmovq_n_s32(__a) \
   ({ \
+     int32_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4si (__a); \
+     __rv.__o = __builtin_neon_vdup_nv4si ((__builtin_neon_si) __ax); \
      __rv.__i; \
    })
 
 #define vmovq_n_f32(__a) \
   ({ \
+     float32_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4sf (__a); \
+     __rv.__o = __builtin_neon_vdup_nv4sf (__ax); \
      __rv.__i; \
    })
 
 #define vmovq_n_u8(__a) \
   ({ \
+     uint8_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv16qi ((int8_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vmovq_n_u16(__a) \
   ({ \
+     uint16_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8hi ((int16_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vmovq_n_u32(__a) \
   ({ \
+     uint32_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv4si ((int32_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv4si ((__builtin_neon_si) __ax); \
      __rv.__i; \
    })
 
 #define vmovq_n_p8(__a) \
   ({ \
+     poly8_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv16qi ((int8_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv16qi ((__builtin_neon_qi) __ax); \
      __rv.__i; \
    })
 
 #define vmovq_n_p16(__a) \
   ({ \
+     poly16_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv8hi ((int16_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv8hi ((__builtin_neon_hi) __ax); \
      __rv.__i; \
    })
 
 #define vmovq_n_s64(__a) \
   ({ \
+     int64_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv2di (__a); \
+     __rv.__o = __builtin_neon_vdup_nv2di ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vmovq_n_u64(__a) \
   ({ \
+     uint64_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_nv2di ((int64_t) __a); \
+     __rv.__o = __builtin_neon_vdup_nv2di ((__builtin_neon_di) __ax); \
      __rv.__i; \
    })
 
 #define vdup_lane_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev8qi (__a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev8qi (__ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdup_lane_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev4hi (__a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev4hi (__ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdup_lane_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev2si (__a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev2si (__ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdup_lane_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev2sf (__a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev2sf (__ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdup_lane_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev8qi ((__neon_int8x8_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev8qi ((__neon_int8x8_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdup_lane_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev4hi ((__neon_int16x4_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev4hi ((__neon_int16x4_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdup_lane_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev2si ((__neon_int32x2_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev2si ((__neon_int32x2_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdup_lane_p8(__a, __b) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev8qi ((__neon_int8x8_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev8qi ((__neon_int8x8_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdup_lane_p16(__a, __b) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev4hi ((__neon_int16x4_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev4hi ((__neon_int16x4_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdup_lane_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev1di (__a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev1di (__ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdup_lane_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev1di ((__neon_int64x1_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev1di ((__neon_int64x1_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdupq_lane_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev16qi (__a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev16qi (__ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdupq_lane_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev8hi (__a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev8hi (__ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdupq_lane_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev4si (__a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev4si (__ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdupq_lane_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev4sf (__a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev4sf (__ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdupq_lane_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev16qi ((__neon_int8x8_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev16qi ((__neon_int8x8_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdupq_lane_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev8hi ((__neon_int16x4_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev8hi ((__neon_int16x4_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdupq_lane_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev4si ((__neon_int32x2_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev4si ((__neon_int32x2_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdupq_lane_p8(__a, __b) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev16qi ((__neon_int8x8_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev16qi ((__neon_int8x8_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdupq_lane_p16(__a, __b) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev8hi ((__neon_int16x4_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev8hi ((__neon_int16x4_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdupq_lane_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev2di (__a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev2di (__ax.val, __b); \
      __rv.__i; \
    })
 
 #define vdupq_lane_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vdup_lanev2di ((__neon_int64x1_t) __a.val, __b); \
+     __rv.__o = __builtin_neon_vdup_lanev2di ((__neon_int64x1_t) __ax.val, __b); \
      __rv.__i; \
    })
 
 #define vcombine_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcombinev8qi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vcombinev8qi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vcombine_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcombinev4hi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vcombinev4hi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vcombine_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcombinev2si (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vcombinev2si (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vcombine_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcombinev1di (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vcombinev1di (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vcombine_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcombinev2sf (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vcombinev2sf (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vcombine_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcombinev8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vcombinev8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vcombine_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcombinev4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val); \
+     __rv.__o = __builtin_neon_vcombinev4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vcombine_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcombinev2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val); \
+     __rv.__o = __builtin_neon_vcombinev2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vcombine_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcombinev1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val); \
+     __rv.__o = __builtin_neon_vcombinev1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vcombine_p8(__a, __b) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcombinev8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vcombinev8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vcombine_p16(__a, __b) \
   ({ \
+     poly16x4_t __ax = __a; \
+     poly16x4_t __bx = __b; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcombinev4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val); \
+     __rv.__o = __builtin_neon_vcombinev4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vget_high_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_highv16qi (__a.val); \
+     __rv.__o = __builtin_neon_vget_highv16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vget_high_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_highv8hi (__a.val); \
+     __rv.__o = __builtin_neon_vget_highv8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vget_high_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_highv4si (__a.val); \
+     __rv.__o = __builtin_neon_vget_highv4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vget_high_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_highv2di (__a.val); \
+     __rv.__o = __builtin_neon_vget_highv2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vget_high_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_highv4sf (__a.val); \
+     __rv.__o = __builtin_neon_vget_highv4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vget_high_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_highv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_highv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vget_high_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_highv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_highv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vget_high_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_highv4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_highv4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vget_high_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_highv2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_highv2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vget_high_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_highv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_highv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vget_high_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_highv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_highv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vget_low_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_lowv16qi (__a.val); \
+     __rv.__o = __builtin_neon_vget_lowv16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vget_low_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_lowv8hi (__a.val); \
+     __rv.__o = __builtin_neon_vget_lowv8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vget_low_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_lowv4si (__a.val); \
+     __rv.__o = __builtin_neon_vget_lowv4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vget_low_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_lowv2di (__a.val); \
+     __rv.__o = __builtin_neon_vget_lowv2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vget_low_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_lowv4sf (__a.val); \
+     __rv.__o = __builtin_neon_vget_lowv4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vget_low_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_lowv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_lowv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vget_low_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_lowv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_lowv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vget_low_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_lowv4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_lowv4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vget_low_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_lowv2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_lowv2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vget_low_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_lowv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_lowv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vget_low_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vget_lowv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vget_lowv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vcvt_s32_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvtv2sf (__a.val, 1); \
+     __rv.__o = __builtin_neon_vcvtv2sf (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcvt_f32_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvtv2si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vcvtv2si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcvt_f32_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvtv2si ((__neon_int32x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcvtv2si ((__neon_int32x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcvt_u32_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvtv2sf (__a.val, 0); \
+     __rv.__o = __builtin_neon_vcvtv2sf (__ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcvtq_s32_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvtv4sf (__a.val, 1); \
+     __rv.__o = __builtin_neon_vcvtv4sf (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcvtq_f32_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvtv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vcvtv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vcvtq_f32_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvtv4si ((__neon_int32x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vcvtv4si ((__neon_int32x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcvtq_u32_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvtv4sf (__a.val, 0); \
+     __rv.__o = __builtin_neon_vcvtv4sf (__ax.val, 0); \
      __rv.__i; \
    })
 
 #define vcvt_n_s32_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvt_nv2sf (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vcvt_nv2sf (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vcvt_n_f32_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvt_nv2si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vcvt_nv2si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vcvt_n_f32_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvt_nv2si ((__neon_int32x2_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vcvt_nv2si ((__neon_int32x2_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vcvt_n_u32_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvt_nv2sf (__a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vcvt_nv2sf (__ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vcvtq_n_s32_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvt_nv4sf (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vcvt_nv4sf (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vcvtq_n_f32_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvt_nv4si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vcvt_nv4si (__ax.val, __b, 1); \
      __rv.__i; \
    })
 
 #define vcvtq_n_f32_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvt_nv4si ((__neon_int32x4_t) __a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vcvt_nv4si ((__neon_int32x4_t) __ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vcvtq_n_u32_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vcvt_nv4sf (__a.val, __b, 0); \
+     __rv.__o = __builtin_neon_vcvt_nv4sf (__ax.val, __b, 0); \
      __rv.__i; \
    })
 
 #define vmovn_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovnv8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmovnv8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmovn_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovnv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmovnv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmovn_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovnv2di (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmovnv2di (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmovn_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovnv8hi ((__neon_int16x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmovnv8hi ((__neon_int16x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vmovn_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovnv4si ((__neon_int32x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmovnv4si ((__neon_int32x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vmovn_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovnv2di ((__neon_int64x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmovnv2di ((__neon_int64x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vqmovn_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqmovnv8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqmovnv8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqmovn_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqmovnv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqmovnv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqmovn_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqmovnv2di (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqmovnv2di (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqmovn_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqmovnv8hi ((__neon_int16x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vqmovnv8hi ((__neon_int16x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vqmovn_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqmovnv4si ((__neon_int32x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vqmovnv4si ((__neon_int32x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vqmovn_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqmovnv2di ((__neon_int64x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vqmovnv2di ((__neon_int64x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vqmovun_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqmovunv8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqmovunv8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqmovun_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqmovunv4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqmovunv4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vqmovun_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqmovunv2di (__a.val, 1); \
+     __rv.__o = __builtin_neon_vqmovunv2di (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmovl_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovlv8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmovlv8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmovl_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovlv4hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmovlv4hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmovl_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovlv2si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vmovlv2si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vmovl_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovlv8qi ((__neon_int8x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmovlv8qi ((__neon_int8x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vmovl_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovlv4hi ((__neon_int16x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmovlv4hi ((__neon_int16x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vmovl_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmovlv2si ((__neon_int32x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vmovlv2si ((__neon_int32x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vtbl1_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl1v8qi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vtbl1v8qi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vtbl1_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl1v8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtbl1v8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtbl1_p8(__a, __b) \
   ({ \
+     poly8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl1v8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtbl1v8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtbl2_s8(__a, __b) \
   ({ \
      union { int8x8x2_t __i; __neon_int8x8x2_t __o; } __au = { __a }; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl2v8qi (__au.__o, __b.val); \
+     __rv.__o = __builtin_neon_vtbl2v8qi (__au.__o, __bx.val); \
      __rv.__i; \
    })
 
 #define vtbl2_u8(__a, __b) \
   ({ \
      union { uint8x8x2_t __i; __neon_int8x8x2_t __o; } __au = { __a }; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl2v8qi (__au.__o, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtbl2v8qi (__au.__o, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtbl2_p8(__a, __b) \
   ({ \
      union { poly8x8x2_t __i; __neon_int8x8x2_t __o; } __au = { __a }; \
+     uint8x8_t __bx = __b; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl2v8qi (__au.__o, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtbl2v8qi (__au.__o, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtbl3_s8(__a, __b) \
   ({ \
      union { int8x8x3_t __i; __neon_int8x8x3_t __o; } __au = { __a }; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl3v8qi (__au.__o, __b.val); \
+     __rv.__o = __builtin_neon_vtbl3v8qi (__au.__o, __bx.val); \
      __rv.__i; \
    })
 
 #define vtbl3_u8(__a, __b) \
   ({ \
      union { uint8x8x3_t __i; __neon_int8x8x3_t __o; } __au = { __a }; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl3v8qi (__au.__o, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtbl3v8qi (__au.__o, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtbl3_p8(__a, __b) \
   ({ \
      union { poly8x8x3_t __i; __neon_int8x8x3_t __o; } __au = { __a }; \
+     uint8x8_t __bx = __b; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl3v8qi (__au.__o, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtbl3v8qi (__au.__o, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtbl4_s8(__a, __b) \
   ({ \
      union { int8x8x4_t __i; __neon_int8x8x4_t __o; } __au = { __a }; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl4v8qi (__au.__o, __b.val); \
+     __rv.__o = __builtin_neon_vtbl4v8qi (__au.__o, __bx.val); \
      __rv.__i; \
    })
 
 #define vtbl4_u8(__a, __b) \
   ({ \
      union { uint8x8x4_t __i; __neon_int8x8x4_t __o; } __au = { __a }; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl4v8qi (__au.__o, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtbl4v8qi (__au.__o, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtbl4_p8(__a, __b) \
   ({ \
      union { poly8x8x4_t __i; __neon_int8x8x4_t __o; } __au = { __a }; \
+     uint8x8_t __bx = __b; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbl4v8qi (__au.__o, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtbl4v8qi (__au.__o, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtbx1_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
+     int8x8_t __cx = __c; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx1v8qi (__a.val, __b.val, __c.val); \
+     __rv.__o = __builtin_neon_vtbx1v8qi (__ax.val, __bx.val, __cx.val); \
      __rv.__i; \
    })
 
 #define vtbx1_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
+     uint8x8_t __cx = __c; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx1v8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, (__neon_int8x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vtbx1v8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vtbx1_p8(__a, __b, __c) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
+     uint8x8_t __cx = __c; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx1v8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, (__neon_int8x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vtbx1v8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vtbx2_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
+     int8x8_t __cx = __c; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx2v8qi (__a.val, __bu.__o, __c.val); \
+     __rv.__o = __builtin_neon_vtbx2v8qi (__ax.val, __bu.__o, __cx.val); \
      __rv.__i; \
    })
 
 #define vtbx2_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
+     uint8x8_t __cx = __c; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx2v8qi ((__neon_int8x8_t) __a.val, __bu.__o, (__neon_int8x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vtbx2v8qi ((__neon_int8x8_t) __ax.val, __bu.__o, (__neon_int8x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vtbx2_p8(__a, __b, __c) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { poly8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
+     uint8x8_t __cx = __c; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx2v8qi ((__neon_int8x8_t) __a.val, __bu.__o, (__neon_int8x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vtbx2v8qi ((__neon_int8x8_t) __ax.val, __bu.__o, (__neon_int8x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vtbx3_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
+     int8x8_t __cx = __c; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx3v8qi (__a.val, __bu.__o, __c.val); \
+     __rv.__o = __builtin_neon_vtbx3v8qi (__ax.val, __bu.__o, __cx.val); \
      __rv.__i; \
    })
 
 #define vtbx3_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
+     uint8x8_t __cx = __c; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx3v8qi ((__neon_int8x8_t) __a.val, __bu.__o, (__neon_int8x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vtbx3v8qi ((__neon_int8x8_t) __ax.val, __bu.__o, (__neon_int8x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vtbx3_p8(__a, __b, __c) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { poly8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
+     uint8x8_t __cx = __c; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx3v8qi ((__neon_int8x8_t) __a.val, __bu.__o, (__neon_int8x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vtbx3v8qi ((__neon_int8x8_t) __ax.val, __bu.__o, (__neon_int8x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vtbx4_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
+     int8x8_t __cx = __c; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx4v8qi (__a.val, __bu.__o, __c.val); \
+     __rv.__o = __builtin_neon_vtbx4v8qi (__ax.val, __bu.__o, __cx.val); \
      __rv.__i; \
    })
 
 #define vtbx4_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
+     uint8x8_t __cx = __c; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx4v8qi ((__neon_int8x8_t) __a.val, __bu.__o, (__neon_int8x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vtbx4v8qi ((__neon_int8x8_t) __ax.val, __bu.__o, (__neon_int8x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vtbx4_p8(__a, __b, __c) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { poly8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
+     uint8x8_t __cx = __c; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtbx4v8qi ((__neon_int8x8_t) __a.val, __bu.__o, (__neon_int8x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vtbx4v8qi ((__neon_int8x8_t) __ax.val, __bu.__o, (__neon_int8x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vmul_lane_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_lanev4hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmul_lanev4hi (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vmul_lane_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_lanev2si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmul_lanev2si (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vmul_lane_f32(__a, __b, __c) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_lanev2sf (__a.val, __b.val, __c, 5); \
+     __rv.__o = __builtin_neon_vmul_lanev2sf (__ax.val, __bx.val, __c, 5); \
      __rv.__i; \
    })
 
 #define vmul_lane_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_lanev4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vmul_lanev4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vmul_lane_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_lanev2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vmul_lanev2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vmulq_lane_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_lanev8hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmul_lanev8hi (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vmulq_lane_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_lanev4si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmul_lanev4si (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vmulq_lane_f32(__a, __b, __c) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_lanev4sf (__a.val, __b.val, __c, 5); \
+     __rv.__o = __builtin_neon_vmul_lanev4sf (__ax.val, __bx.val, __c, 5); \
      __rv.__i; \
    })
 
 #define vmulq_lane_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_lanev8hi ((__neon_int16x8_t) __a.val, (__neon_int16x4_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vmul_lanev8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x4_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vmulq_lane_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_lanev4si ((__neon_int32x4_t) __a.val, (__neon_int32x2_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vmul_lanev4si ((__neon_int32x4_t) __ax.val, (__neon_int32x2_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vmla_lane_s16(__a, __b, __c, __d) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_lanev4hi (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmla_lanev4hi (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmla_lane_s32(__a, __b, __c, __d) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_lanev2si (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmla_lanev2si (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmla_lane_f32(__a, __b, __c, __d) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
+     float32x2_t __cx = __c; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_lanev2sf (__a.val, __b.val, __c.val, __d, 5); \
+     __rv.__o = __builtin_neon_vmla_lanev2sf (__ax.val, __bx.val, __cx.val, __d, 5); \
      __rv.__i; \
    })
 
 #define vmla_lane_u16(__a, __b, __c, __d) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_lanev4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmla_lanev4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vmla_lane_u32(__a, __b, __c, __d) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_lanev2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, (__neon_int32x2_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmla_lanev2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vmlaq_lane_s16(__a, __b, __c, __d) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_lanev8hi (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmla_lanev8hi (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmlaq_lane_s32(__a, __b, __c, __d) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_lanev4si (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmla_lanev4si (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmlaq_lane_f32(__a, __b, __c, __d) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
+     float32x2_t __cx = __c; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_lanev4sf (__a.val, __b.val, __c.val, __d, 5); \
+     __rv.__o = __builtin_neon_vmla_lanev4sf (__ax.val, __bx.val, __cx.val, __d, 5); \
      __rv.__i; \
    })
 
 #define vmlaq_lane_u16(__a, __b, __c, __d) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_lanev8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, (__neon_int16x4_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmla_lanev8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, (__neon_int16x4_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vmlaq_lane_u32(__a, __b, __c, __d) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_lanev4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, (__neon_int32x2_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmla_lanev4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, (__neon_int32x2_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vmlal_lane_s16(__a, __b, __c, __d) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlal_lanev4hi (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmlal_lanev4hi (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmlal_lane_s32(__a, __b, __c, __d) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlal_lanev2si (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmlal_lanev2si (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmlal_lane_u16(__a, __b, __c, __d) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlal_lanev4hi ((__neon_int32x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmlal_lanev4hi ((__neon_int32x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vmlal_lane_u32(__a, __b, __c, __d) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlal_lanev2si ((__neon_int64x2_t) __a.val, (__neon_int32x2_t) __b.val, (__neon_int32x2_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmlal_lanev2si ((__neon_int64x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vqdmlal_lane_s16(__a, __b, __c, __d) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlal_lanev4hi (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vqdmlal_lanev4hi (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vqdmlal_lane_s32(__a, __b, __c, __d) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlal_lanev2si (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vqdmlal_lanev2si (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmls_lane_s16(__a, __b, __c, __d) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_lanev4hi (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmls_lanev4hi (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmls_lane_s32(__a, __b, __c, __d) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_lanev2si (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmls_lanev2si (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmls_lane_f32(__a, __b, __c, __d) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
+     float32x2_t __cx = __c; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_lanev2sf (__a.val, __b.val, __c.val, __d, 5); \
+     __rv.__o = __builtin_neon_vmls_lanev2sf (__ax.val, __bx.val, __cx.val, __d, 5); \
      __rv.__i; \
    })
 
 #define vmls_lane_u16(__a, __b, __c, __d) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_lanev4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmls_lanev4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vmls_lane_u32(__a, __b, __c, __d) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_lanev2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, (__neon_int32x2_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmls_lanev2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vmlsq_lane_s16(__a, __b, __c, __d) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_lanev8hi (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmls_lanev8hi (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmlsq_lane_s32(__a, __b, __c, __d) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_lanev4si (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmls_lanev4si (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmlsq_lane_f32(__a, __b, __c, __d) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
+     float32x2_t __cx = __c; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_lanev4sf (__a.val, __b.val, __c.val, __d, 5); \
+     __rv.__o = __builtin_neon_vmls_lanev4sf (__ax.val, __bx.val, __cx.val, __d, 5); \
      __rv.__i; \
    })
 
 #define vmlsq_lane_u16(__a, __b, __c, __d) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_lanev8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, (__neon_int16x4_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmls_lanev8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, (__neon_int16x4_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vmlsq_lane_u32(__a, __b, __c, __d) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_lanev4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, (__neon_int32x2_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmls_lanev4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, (__neon_int32x2_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vmlsl_lane_s16(__a, __b, __c, __d) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsl_lanev4hi (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmlsl_lanev4hi (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmlsl_lane_s32(__a, __b, __c, __d) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsl_lanev2si (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vmlsl_lanev2si (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmlsl_lane_u16(__a, __b, __c, __d) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsl_lanev4hi ((__neon_int32x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmlsl_lanev4hi ((__neon_int32x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vmlsl_lane_u32(__a, __b, __c, __d) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsl_lanev2si ((__neon_int64x2_t) __a.val, (__neon_int32x2_t) __b.val, (__neon_int32x2_t) __c.val, __d, 0); \
+     __rv.__o = __builtin_neon_vmlsl_lanev2si ((__neon_int64x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __cx.val, __d, 0); \
      __rv.__i; \
    })
 
 #define vqdmlsl_lane_s16(__a, __b, __c, __d) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlsl_lanev4hi (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vqdmlsl_lanev4hi (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vqdmlsl_lane_s32(__a, __b, __c, __d) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlsl_lanev2si (__a.val, __b.val, __c.val, __d, 1); \
+     __rv.__o = __builtin_neon_vqdmlsl_lanev2si (__ax.val, __bx.val, __cx.val, __d, 1); \
      __rv.__i; \
    })
 
 #define vmull_lane_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmull_lanev4hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmull_lanev4hi (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vmull_lane_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmull_lanev2si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmull_lanev2si (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vmull_lane_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmull_lanev4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vmull_lanev4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vmull_lane_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmull_lanev2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, __c, 0); \
+     __rv.__o = __builtin_neon_vmull_lanev2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, __c, 0); \
      __rv.__i; \
    })
 
 #define vqdmull_lane_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmull_lanev4hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vqdmull_lanev4hi (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vqdmull_lane_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmull_lanev2si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vqdmull_lanev2si (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vqdmulhq_lane_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_lanev8hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vqdmulh_lanev8hi (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vqdmulhq_lane_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_lanev4si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vqdmulh_lanev4si (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vqdmulh_lane_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_lanev4hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vqdmulh_lanev4hi (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vqdmulh_lane_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_lanev2si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vqdmulh_lanev2si (__ax.val, __bx.val, __c, 1); \
      __rv.__i; \
    })
 
 #define vqrdmulhq_lane_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_lanev8hi (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vqdmulh_lanev8hi (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vqrdmulhq_lane_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_lanev4si (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vqdmulh_lanev4si (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vqrdmulh_lane_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_lanev4hi (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vqdmulh_lanev4hi (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vqrdmulh_lane_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_lanev2si (__a.val, __b.val, __c, 3); \
+     __rv.__o = __builtin_neon_vqdmulh_lanev2si (__ax.val, __bx.val, __c, 3); \
      __rv.__i; \
    })
 
 #define vmul_n_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_nv4hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vmul_nv4hi (__ax.val, (__builtin_neon_hi) __bx, 1); \
      __rv.__i; \
    })
 
 #define vmul_n_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_nv2si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vmul_nv2si (__ax.val, (__builtin_neon_si) __bx, 1); \
      __rv.__i; \
    })
 
 #define vmul_n_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_nv2sf (__a.val, __b, 5); \
+     __rv.__o = __builtin_neon_vmul_nv2sf (__ax.val, __bx, 5); \
      __rv.__i; \
    })
 
 #define vmul_n_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_nv4hi ((__neon_int16x4_t) __a.val, (int16_t) __b, 0); \
+     __rv.__o = __builtin_neon_vmul_nv4hi ((__neon_int16x4_t) __ax.val, (__builtin_neon_hi) __bx, 0); \
      __rv.__i; \
    })
 
 #define vmul_n_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_nv2si ((__neon_int32x2_t) __a.val, (int32_t) __b, 0); \
+     __rv.__o = __builtin_neon_vmul_nv2si ((__neon_int32x2_t) __ax.val, (__builtin_neon_si) __bx, 0); \
      __rv.__i; \
    })
 
 #define vmulq_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_nv8hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vmul_nv8hi (__ax.val, (__builtin_neon_hi) __bx, 1); \
      __rv.__i; \
    })
 
 #define vmulq_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_nv4si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vmul_nv4si (__ax.val, (__builtin_neon_si) __bx, 1); \
      __rv.__i; \
    })
 
 #define vmulq_n_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_nv4sf (__a.val, __b, 5); \
+     __rv.__o = __builtin_neon_vmul_nv4sf (__ax.val, __bx, 5); \
      __rv.__i; \
    })
 
 #define vmulq_n_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_nv8hi ((__neon_int16x8_t) __a.val, (int16_t) __b, 0); \
+     __rv.__o = __builtin_neon_vmul_nv8hi ((__neon_int16x8_t) __ax.val, (__builtin_neon_hi) __bx, 0); \
      __rv.__i; \
    })
 
 #define vmulq_n_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmul_nv4si ((__neon_int32x4_t) __a.val, (int32_t) __b, 0); \
+     __rv.__o = __builtin_neon_vmul_nv4si ((__neon_int32x4_t) __ax.val, (__builtin_neon_si) __bx, 0); \
      __rv.__i; \
    })
 
 #define vmull_n_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmull_nv4hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vmull_nv4hi (__ax.val, (__builtin_neon_hi) __bx, 1); \
      __rv.__i; \
    })
 
 #define vmull_n_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmull_nv2si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vmull_nv2si (__ax.val, (__builtin_neon_si) __bx, 1); \
      __rv.__i; \
    })
 
 #define vmull_n_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmull_nv4hi ((__neon_int16x4_t) __a.val, (int16_t) __b, 0); \
+     __rv.__o = __builtin_neon_vmull_nv4hi ((__neon_int16x4_t) __ax.val, (__builtin_neon_hi) __bx, 0); \
      __rv.__i; \
    })
 
 #define vmull_n_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmull_nv2si ((__neon_int32x2_t) __a.val, (int32_t) __b, 0); \
+     __rv.__o = __builtin_neon_vmull_nv2si ((__neon_int32x2_t) __ax.val, (__builtin_neon_si) __bx, 0); \
      __rv.__i; \
    })
 
 #define vqdmull_n_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmull_nv4hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqdmull_nv4hi (__ax.val, (__builtin_neon_hi) __bx, 1); \
      __rv.__i; \
    })
 
 #define vqdmull_n_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmull_nv2si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqdmull_nv2si (__ax.val, (__builtin_neon_si) __bx, 1); \
      __rv.__i; \
    })
 
 #define vqdmulhq_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_nv8hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqdmulh_nv8hi (__ax.val, (__builtin_neon_hi) __bx, 1); \
      __rv.__i; \
    })
 
 #define vqdmulhq_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_nv4si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqdmulh_nv4si (__ax.val, (__builtin_neon_si) __bx, 1); \
      __rv.__i; \
    })
 
 #define vqdmulh_n_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_nv4hi (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqdmulh_nv4hi (__ax.val, (__builtin_neon_hi) __bx, 1); \
      __rv.__i; \
    })
 
 #define vqdmulh_n_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_nv2si (__a.val, __b, 1); \
+     __rv.__o = __builtin_neon_vqdmulh_nv2si (__ax.val, (__builtin_neon_si) __bx, 1); \
      __rv.__i; \
    })
 
 #define vqrdmulhq_n_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_nv8hi (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vqdmulh_nv8hi (__ax.val, (__builtin_neon_hi) __bx, 3); \
      __rv.__i; \
    })
 
 #define vqrdmulhq_n_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_nv4si (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vqdmulh_nv4si (__ax.val, (__builtin_neon_si) __bx, 3); \
      __rv.__i; \
    })
 
 #define vqrdmulh_n_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_nv4hi (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vqdmulh_nv4hi (__ax.val, (__builtin_neon_hi) __bx, 3); \
      __rv.__i; \
    })
 
 #define vqrdmulh_n_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmulh_nv2si (__a.val, __b, 3); \
+     __rv.__o = __builtin_neon_vqdmulh_nv2si (__ax.val, (__builtin_neon_si) __bx, 3); \
      __rv.__i; \
    })
 
 #define vmla_n_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16_t __cx = __c; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_nv4hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmla_nv4hi (__ax.val, __bx.val, (__builtin_neon_hi) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmla_n_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32_t __cx = __c; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_nv2si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmla_nv2si (__ax.val, __bx.val, (__builtin_neon_si) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmla_n_f32(__a, __b, __c) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
+     float32_t __cx = __c; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_nv2sf (__a.val, __b.val, __c, 5); \
+     __rv.__o = __builtin_neon_vmla_nv2sf (__ax.val, __bx.val, __cx, 5); \
      __rv.__i; \
    })
 
 #define vmla_n_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16_t __cx = __c; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_nv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, (int16_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmla_nv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__builtin_neon_hi) __cx, 0); \
      __rv.__i; \
    })
 
 #define vmla_n_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32_t __cx = __c; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_nv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, (int32_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmla_nv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__builtin_neon_si) __cx, 0); \
      __rv.__i; \
    })
 
 #define vmlaq_n_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
+     int16_t __cx = __c; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_nv8hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmla_nv8hi (__ax.val, __bx.val, (__builtin_neon_hi) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmlaq_n_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
+     int32_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_nv4si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmla_nv4si (__ax.val, __bx.val, (__builtin_neon_si) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmlaq_n_f32(__a, __b, __c) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
+     float32_t __cx = __c; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_nv4sf (__a.val, __b.val, __c, 5); \
+     __rv.__o = __builtin_neon_vmla_nv4sf (__ax.val, __bx.val, __cx, 5); \
      __rv.__i; \
    })
 
 #define vmlaq_n_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
+     uint16_t __cx = __c; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_nv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, (int16_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmla_nv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, (__builtin_neon_hi) __cx, 0); \
      __rv.__i; \
    })
 
 #define vmlaq_n_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
+     uint32_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmla_nv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, (int32_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmla_nv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, (__builtin_neon_si) __cx, 0); \
      __rv.__i; \
    })
 
 #define vmlal_n_s16(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlal_nv4hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmlal_nv4hi (__ax.val, __bx.val, (__builtin_neon_hi) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmlal_n_s32(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlal_nv2si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmlal_nv2si (__ax.val, __bx.val, (__builtin_neon_si) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmlal_n_u16(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlal_nv4hi ((__neon_int32x4_t) __a.val, (__neon_int16x4_t) __b.val, (int16_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmlal_nv4hi ((__neon_int32x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__builtin_neon_hi) __cx, 0); \
      __rv.__i; \
    })
 
 #define vmlal_n_u32(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32_t __cx = __c; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlal_nv2si ((__neon_int64x2_t) __a.val, (__neon_int32x2_t) __b.val, (int32_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmlal_nv2si ((__neon_int64x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__builtin_neon_si) __cx, 0); \
      __rv.__i; \
    })
 
 #define vqdmlal_n_s16(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlal_nv4hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vqdmlal_nv4hi (__ax.val, __bx.val, (__builtin_neon_hi) __cx, 1); \
      __rv.__i; \
    })
 
 #define vqdmlal_n_s32(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlal_nv2si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vqdmlal_nv2si (__ax.val, __bx.val, (__builtin_neon_si) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmls_n_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16_t __cx = __c; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_nv4hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmls_nv4hi (__ax.val, __bx.val, (__builtin_neon_hi) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmls_n_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32_t __cx = __c; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_nv2si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmls_nv2si (__ax.val, __bx.val, (__builtin_neon_si) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmls_n_f32(__a, __b, __c) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
+     float32_t __cx = __c; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_nv2sf (__a.val, __b.val, __c, 5); \
+     __rv.__o = __builtin_neon_vmls_nv2sf (__ax.val, __bx.val, __cx, 5); \
      __rv.__i; \
    })
 
 #define vmls_n_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16_t __cx = __c; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_nv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, (int16_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmls_nv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__builtin_neon_hi) __cx, 0); \
      __rv.__i; \
    })
 
 #define vmls_n_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32_t __cx = __c; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_nv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, (int32_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmls_nv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__builtin_neon_si) __cx, 0); \
      __rv.__i; \
    })
 
 #define vmlsq_n_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
+     int16_t __cx = __c; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_nv8hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmls_nv8hi (__ax.val, __bx.val, (__builtin_neon_hi) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmlsq_n_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
+     int32_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_nv4si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmls_nv4si (__ax.val, __bx.val, (__builtin_neon_si) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmlsq_n_f32(__a, __b, __c) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
+     float32_t __cx = __c; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_nv4sf (__a.val, __b.val, __c, 5); \
+     __rv.__o = __builtin_neon_vmls_nv4sf (__ax.val, __bx.val, __cx, 5); \
      __rv.__i; \
    })
 
 #define vmlsq_n_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
+     uint16_t __cx = __c; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_nv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, (int16_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmls_nv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, (__builtin_neon_hi) __cx, 0); \
      __rv.__i; \
    })
 
 #define vmlsq_n_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
+     uint32_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmls_nv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, (int32_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmls_nv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, (__builtin_neon_si) __cx, 0); \
      __rv.__i; \
    })
 
 #define vmlsl_n_s16(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsl_nv4hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmlsl_nv4hi (__ax.val, __bx.val, (__builtin_neon_hi) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmlsl_n_s32(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsl_nv2si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vmlsl_nv2si (__ax.val, __bx.val, (__builtin_neon_si) __cx, 1); \
      __rv.__i; \
    })
 
 #define vmlsl_n_u16(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsl_nv4hi ((__neon_int32x4_t) __a.val, (__neon_int16x4_t) __b.val, (int16_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmlsl_nv4hi ((__neon_int32x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__builtin_neon_hi) __cx, 0); \
      __rv.__i; \
    })
 
 #define vmlsl_n_u32(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32_t __cx = __c; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vmlsl_nv2si ((__neon_int64x2_t) __a.val, (__neon_int32x2_t) __b.val, (int32_t) __c, 0); \
+     __rv.__o = __builtin_neon_vmlsl_nv2si ((__neon_int64x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__builtin_neon_si) __cx, 0); \
      __rv.__i; \
    })
 
 #define vqdmlsl_n_s16(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlsl_nv4hi (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vqdmlsl_nv4hi (__ax.val, __bx.val, (__builtin_neon_hi) __cx, 1); \
      __rv.__i; \
    })
 
 #define vqdmlsl_n_s32(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vqdmlsl_nv2si (__a.val, __b.val, __c, 1); \
+     __rv.__o = __builtin_neon_vqdmlsl_nv2si (__ax.val, __bx.val, (__builtin_neon_si) __cx, 1); \
      __rv.__i; \
    })
 
 #define vext_s8(__a, __b, __c) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv8qi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv8qi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vext_s16(__a, __b, __c) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv4hi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv4hi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vext_s32(__a, __b, __c) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv2si (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv2si (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vext_s64(__a, __b, __c) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv1di (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv1di (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vext_f32(__a, __b, __c) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv2sf (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv2sf (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vext_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vext_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vext_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vext_u64(__a, __b, __c) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vext_p8(__a, __b, __c) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vext_p16(__a, __b, __c) \
   ({ \
+     poly16x4_t __ax = __a; \
+     poly16x4_t __bx = __b; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vextq_s8(__a, __b, __c) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv16qi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv16qi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vextq_s16(__a, __b, __c) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv8hi (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv8hi (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vextq_s32(__a, __b, __c) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv4si (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv4si (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vextq_s64(__a, __b, __c) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv2di (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv2di (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vextq_f32(__a, __b, __c) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv4sf (__a.val, __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv4sf (__ax.val, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vextq_u8(__a, __b, __c) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vextq_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vextq_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vextq_u64(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vextq_p8(__a, __b, __c) \
   ({ \
+     poly8x16_t __ax = __a; \
+     poly8x16_t __bx = __b; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vextq_p16(__a, __b, __c) \
   ({ \
+     poly16x8_t __ax = __a; \
+     poly16x8_t __bx = __b; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vextv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vextv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vrev64_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev64v8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev64_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v4hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev64v4hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev64_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v2si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev64v2si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev64_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v2sf (__a.val, 5); \
+     __rv.__o = __builtin_neon_vrev64v2sf (__ax.val, 5); \
      __rv.__i; \
    })
 
 #define vrev64_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v8qi ((__neon_int8x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev64v8qi ((__neon_int8x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev64_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v4hi ((__neon_int16x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev64v4hi ((__neon_int16x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev64_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v2si ((__neon_int32x2_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev64v2si ((__neon_int32x2_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev64_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v8qi ((__neon_int8x8_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vrev64v8qi ((__neon_int8x8_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vrev64_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v4hi ((__neon_int16x4_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vrev64v4hi ((__neon_int16x4_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vrev64q_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev64v16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev64q_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev64v8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev64q_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v4si (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev64v4si (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev64q_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v4sf (__a.val, 5); \
+     __rv.__o = __builtin_neon_vrev64v4sf (__ax.val, 5); \
      __rv.__i; \
    })
 
 #define vrev64q_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v16qi ((__neon_int8x16_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev64v16qi ((__neon_int8x16_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev64q_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v8hi ((__neon_int16x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev64v8hi ((__neon_int16x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev64q_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v4si ((__neon_int32x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev64v4si ((__neon_int32x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev64q_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v16qi ((__neon_int8x16_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vrev64v16qi ((__neon_int8x16_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vrev64q_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev64v8hi ((__neon_int16x8_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vrev64v8hi ((__neon_int16x8_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vrev32_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev32v8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev32_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v4hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev32v4hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev32_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v8qi ((__neon_int8x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev32v8qi ((__neon_int8x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev32_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v4hi ((__neon_int16x4_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev32v4hi ((__neon_int16x4_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev32_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v8qi ((__neon_int8x8_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vrev32v8qi ((__neon_int8x8_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vrev32_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v4hi ((__neon_int16x4_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vrev32v4hi ((__neon_int16x4_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vrev32q_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev32v16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev32q_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v8hi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev32v8hi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev32q_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v16qi ((__neon_int8x16_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev32v16qi ((__neon_int8x16_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev32q_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v8hi ((__neon_int16x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev32v8hi ((__neon_int16x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev32q_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v16qi ((__neon_int8x16_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vrev32v16qi ((__neon_int8x16_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vrev32q_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev32v8hi ((__neon_int16x8_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vrev32v8hi ((__neon_int16x8_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vrev16_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev16v8qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev16v8qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev16_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev16v8qi ((__neon_int8x8_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev16v8qi ((__neon_int8x8_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev16_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev16v8qi ((__neon_int8x8_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vrev16v8qi ((__neon_int8x8_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vrev16q_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev16v16qi (__a.val, 1); \
+     __rv.__o = __builtin_neon_vrev16v16qi (__ax.val, 1); \
      __rv.__i; \
    })
 
 #define vrev16q_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev16v16qi ((__neon_int8x16_t) __a.val, 0); \
+     __rv.__o = __builtin_neon_vrev16v16qi ((__neon_int8x16_t) __ax.val, 0); \
      __rv.__i; \
    })
 
 #define vrev16q_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vrev16v16qi ((__neon_int8x16_t) __a.val, 4); \
+     __rv.__o = __builtin_neon_vrev16v16qi ((__neon_int8x16_t) __ax.val, 4); \
      __rv.__i; \
    })
 
 #define vbsl_s8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
+     int8x8_t __cx = __c; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv8qi ((__neon_int8x8_t) __a.val, __b.val, __c.val); \
+     __rv.__o = __builtin_neon_vbslv8qi ((__neon_int8x8_t) __ax.val, __bx.val, __cx.val); \
      __rv.__i; \
    })
 
 #define vbsl_s16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
+     int16x4_t __cx = __c; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv4hi ((__neon_int16x4_t) __a.val, __b.val, __c.val); \
+     __rv.__o = __builtin_neon_vbslv4hi ((__neon_int16x4_t) __ax.val, __bx.val, __cx.val); \
      __rv.__i; \
    })
 
 #define vbsl_s32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
+     int32x2_t __cx = __c; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv2si ((__neon_int32x2_t) __a.val, __b.val, __c.val); \
+     __rv.__o = __builtin_neon_vbslv2si ((__neon_int32x2_t) __ax.val, __bx.val, __cx.val); \
      __rv.__i; \
    })
 
 #define vbsl_s64(__a, __b, __c) \
   ({ \
+     uint64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
+     int64x1_t __cx = __c; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv1di ((__neon_int64x1_t) __a.val, __b.val, __c.val); \
+     __rv.__o = __builtin_neon_vbslv1di ((__neon_int64x1_t) __ax.val, __bx.val, __cx.val); \
      __rv.__i; \
    })
 
 #define vbsl_f32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
+     float32x2_t __cx = __c; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv2sf ((__neon_int32x2_t) __a.val, __b.val, __c.val); \
+     __rv.__o = __builtin_neon_vbslv2sf ((__neon_int32x2_t) __ax.val, __bx.val, __cx.val); \
      __rv.__i; \
    })
 
 #define vbsl_u8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
+     uint8x8_t __cx = __c; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, (__neon_int8x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vbsl_u16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
+     uint16x4_t __cx = __c; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vbsl_u32(__a, __b, __c) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
+     uint32x2_t __cx = __c; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, (__neon_int32x2_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, (__neon_int32x2_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vbsl_u64(__a, __b, __c) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
+     uint64x1_t __cx = __c; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, (__neon_int64x1_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, (__neon_int64x1_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vbsl_p8(__a, __b, __c) \
   ({ \
+     uint8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
+     poly8x8_t __cx = __c; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, (__neon_int8x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, (__neon_int8x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vbsl_p16(__a, __b, __c) \
   ({ \
+     uint16x4_t __ax = __a; \
+     poly16x4_t __bx = __b; \
+     poly16x4_t __cx = __c; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, (__neon_int16x4_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, (__neon_int16x4_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vbslq_s8(__a, __b, __c) \
   ({ \
+     uint8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
+     int8x16_t __cx = __c; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv16qi ((__neon_int8x16_t) __a.val, __b.val, __c.val); \
+     __rv.__o = __builtin_neon_vbslv16qi ((__neon_int8x16_t) __ax.val, __bx.val, __cx.val); \
      __rv.__i; \
    })
 
 #define vbslq_s16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
+     int16x8_t __cx = __c; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv8hi ((__neon_int16x8_t) __a.val, __b.val, __c.val); \
+     __rv.__o = __builtin_neon_vbslv8hi ((__neon_int16x8_t) __ax.val, __bx.val, __cx.val); \
      __rv.__i; \
    })
 
 #define vbslq_s32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
+     int32x4_t __cx = __c; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv4si ((__neon_int32x4_t) __a.val, __b.val, __c.val); \
+     __rv.__o = __builtin_neon_vbslv4si ((__neon_int32x4_t) __ax.val, __bx.val, __cx.val); \
      __rv.__i; \
    })
 
 #define vbslq_s64(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
+     int64x2_t __cx = __c; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv2di ((__neon_int64x2_t) __a.val, __b.val, __c.val); \
+     __rv.__o = __builtin_neon_vbslv2di ((__neon_int64x2_t) __ax.val, __bx.val, __cx.val); \
      __rv.__i; \
    })
 
 #define vbslq_f32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
+     float32x4_t __cx = __c; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv4sf ((__neon_int32x4_t) __a.val, __b.val, __c.val); \
+     __rv.__o = __builtin_neon_vbslv4sf ((__neon_int32x4_t) __ax.val, __bx.val, __cx.val); \
      __rv.__i; \
    })
 
 #define vbslq_u8(__a, __b, __c) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
+     uint8x16_t __cx = __c; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, (__neon_int8x16_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, (__neon_int8x16_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vbslq_u16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
+     uint16x8_t __cx = __c; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, (__neon_int16x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, (__neon_int16x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vbslq_u32(__a, __b, __c) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
+     uint32x4_t __cx = __c; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, (__neon_int32x4_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, (__neon_int32x4_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vbslq_u64(__a, __b, __c) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
+     uint64x2_t __cx = __c; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, (__neon_int64x2_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, (__neon_int64x2_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vbslq_p8(__a, __b, __c) \
   ({ \
+     uint8x16_t __ax = __a; \
+     poly8x16_t __bx = __b; \
+     poly8x16_t __cx = __c; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, (__neon_int8x16_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, (__neon_int8x16_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vbslq_p16(__a, __b, __c) \
   ({ \
+     uint16x8_t __ax = __a; \
+     poly16x8_t __bx = __b; \
+     poly16x8_t __cx = __c; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbslv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, (__neon_int16x8_t) __c.val); \
+     __rv.__o = __builtin_neon_vbslv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, (__neon_int16x8_t) __cx.val); \
      __rv.__i; \
    })
 
 #define vtrn_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv8qi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vtrnv8qi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vtrn_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv4hi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vtrnv4hi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vtrn_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv2si (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vtrnv2si (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vtrn_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2x2_t __i; __neon_float32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv2sf (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vtrnv2sf (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vtrn_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtrnv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtrn_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val); \
+     __rv.__o = __builtin_neon_vtrnv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtrn_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val); \
+     __rv.__o = __builtin_neon_vtrnv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtrn_p8(__a, __b) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { poly8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtrnv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtrn_p16(__a, __b) \
   ({ \
+     poly16x4_t __ax = __a; \
+     poly16x4_t __bx = __b; \
      union { poly16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val); \
+     __rv.__o = __builtin_neon_vtrnv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtrnq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv16qi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vtrnv16qi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vtrnq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv8hi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vtrnv8hi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vtrnq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4x2_t __i; __neon_int32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv4si (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vtrnv4si (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vtrnq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4x2_t __i; __neon_float32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv4sf (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vtrnv4sf (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vtrnq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val); \
+     __rv.__o = __builtin_neon_vtrnv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtrnq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtrnv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtrnq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4x2_t __i; __neon_int32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val); \
+     __rv.__o = __builtin_neon_vtrnv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtrnq_p8(__a, __b) \
   ({ \
+     poly8x16_t __ax = __a; \
+     poly8x16_t __bx = __b; \
      union { poly8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val); \
+     __rv.__o = __builtin_neon_vtrnv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vtrnq_p16(__a, __b) \
   ({ \
+     poly16x8_t __ax = __a; \
+     poly16x8_t __bx = __b; \
      union { poly16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vtrnv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vtrnv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vzip_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv8qi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vzipv8qi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vzip_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv4hi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vzipv4hi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vzip_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv2si (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vzipv2si (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vzip_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2x2_t __i; __neon_float32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv2sf (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vzipv2sf (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vzip_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vzipv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vzip_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val); \
+     __rv.__o = __builtin_neon_vzipv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vzip_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val); \
+     __rv.__o = __builtin_neon_vzipv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vzip_p8(__a, __b) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { poly8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vzipv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vzip_p16(__a, __b) \
   ({ \
+     poly16x4_t __ax = __a; \
+     poly16x4_t __bx = __b; \
      union { poly16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val); \
+     __rv.__o = __builtin_neon_vzipv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vzipq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv16qi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vzipv16qi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vzipq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv8hi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vzipv8hi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vzipq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4x2_t __i; __neon_int32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv4si (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vzipv4si (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vzipq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4x2_t __i; __neon_float32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv4sf (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vzipv4sf (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vzipq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val); \
+     __rv.__o = __builtin_neon_vzipv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vzipq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vzipv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vzipq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4x2_t __i; __neon_int32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val); \
+     __rv.__o = __builtin_neon_vzipv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vzipq_p8(__a, __b) \
   ({ \
+     poly8x16_t __ax = __a; \
+     poly8x16_t __bx = __b; \
      union { poly8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val); \
+     __rv.__o = __builtin_neon_vzipv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vzipq_p16(__a, __b) \
   ({ \
+     poly16x8_t __ax = __a; \
+     poly16x8_t __bx = __b; \
      union { poly16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vzipv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vzipv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vuzp_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv8qi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vuzpv8qi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vuzp_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv4hi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vuzpv4hi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vuzp_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv2si (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vuzpv2si (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vuzp_f32(__a, __b) \
   ({ \
+     float32x2_t __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2x2_t __i; __neon_float32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv2sf (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vuzpv2sf (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vuzp_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vuzpv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vuzp_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val); \
+     __rv.__o = __builtin_neon_vuzpv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vuzp_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val); \
+     __rv.__o = __builtin_neon_vuzpv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vuzp_p8(__a, __b) \
   ({ \
+     poly8x8_t __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { poly8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vuzpv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vuzp_p16(__a, __b) \
   ({ \
+     poly16x4_t __ax = __a; \
+     poly16x4_t __bx = __b; \
      union { poly16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val); \
+     __rv.__o = __builtin_neon_vuzpv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vuzpq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv16qi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vuzpv16qi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vuzpq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv8hi (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vuzpv8hi (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vuzpq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4x2_t __i; __neon_int32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv4si (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vuzpv4si (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vuzpq_f32(__a, __b) \
   ({ \
+     float32x4_t __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4x2_t __i; __neon_float32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv4sf (__a.val, __b.val); \
+     __rv.__o = __builtin_neon_vuzpv4sf (__ax.val, __bx.val); \
      __rv.__i; \
    })
 
 #define vuzpq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val); \
+     __rv.__o = __builtin_neon_vuzpv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vuzpq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vuzpv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vuzpq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4x2_t __i; __neon_int32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val); \
+     __rv.__o = __builtin_neon_vuzpv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vuzpq_p8(__a, __b) \
   ({ \
+     poly8x16_t __ax = __a; \
+     poly8x16_t __bx = __b; \
      union { poly8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val); \
+     __rv.__o = __builtin_neon_vuzpv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vuzpq_p16(__a, __b) \
   ({ \
+     poly16x8_t __ax = __a; \
+     poly16x8_t __bx = __b; \
      union { poly16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vuzpv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val); \
+     __rv.__o = __builtin_neon_vuzpv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val); \
      __rv.__i; \
    })
 
 #define vld1_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v8qi (__a); \
+     __rv.__o = __builtin_neon_vld1v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v4hi (__a); \
+     __rv.__o = __builtin_neon_vld1v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v2si (__a); \
+     __rv.__o = __builtin_neon_vld1v2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_s64(__a) \
   ({ \
+     const int64_t * __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v1di (__a); \
+     __rv.__o = __builtin_neon_vld1v1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v2sf (__a); \
+     __rv.__o = __builtin_neon_vld1v2sf (__ax); \
      __rv.__i; \
    })
 
 #define vld1_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v2si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_u64(__a) \
   ({ \
+     const uint64_t * __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v1di ((const int64_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v16qi (__a); \
+     __rv.__o = __builtin_neon_vld1v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v8hi (__a); \
+     __rv.__o = __builtin_neon_vld1v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v4si (__a); \
+     __rv.__o = __builtin_neon_vld1v4si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_s64(__a) \
   ({ \
+     const int64_t * __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v2di (__a); \
+     __rv.__o = __builtin_neon_vld1v2di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v4sf (__a); \
+     __rv.__o = __builtin_neon_vld1v4sf (__ax); \
      __rv.__i; \
    })
 
 #define vld1q_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v16qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v8hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v4si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v4si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_u64(__a) \
   ({ \
+     const uint64_t * __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v2di ((const int64_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v2di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v16qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1v8hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld1v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_lane_s8(__a, __b, __c) \
   ({ \
+     const int8_t * __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev8qi (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1_lane_s16(__a, __b, __c) \
   ({ \
+     const int16_t * __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev4hi (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1_lane_s32(__a, __b, __c) \
   ({ \
+     const int32_t * __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev2si (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev2si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1_lane_f32(__a, __b, __c) \
   ({ \
+     const float32_t * __ax = __a; \
+     float32x2_t __bx = __b; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev2sf (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev2sf (__ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1_lane_u8(__a, __b, __c) \
   ({ \
+     const uint8_t * __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev8qi ((const int8_t *) __a, (__neon_int8x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), (__neon_int8x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1_lane_u16(__a, __b, __c) \
   ({ \
+     const uint16_t * __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev4hi ((const int16_t *) __a, (__neon_int16x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), (__neon_int16x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1_lane_u32(__a, __b, __c) \
   ({ \
+     const uint32_t * __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev2si ((const int32_t *) __a, (__neon_int32x2_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev2si (__neon_ptr_cast(const __builtin_neon_si *, __ax), (__neon_int32x2_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1_lane_p8(__a, __b, __c) \
   ({ \
+     const poly8_t * __ax = __a; \
+     poly8x8_t __bx = __b; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev8qi ((const int8_t *) __a, (__neon_int8x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), (__neon_int8x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1_lane_p16(__a, __b, __c) \
   ({ \
+     const poly16_t * __ax = __a; \
+     poly16x4_t __bx = __b; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev4hi ((const int16_t *) __a, (__neon_int16x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), (__neon_int16x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1_lane_s64(__a, __b, __c) \
   ({ \
+     const int64_t * __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev1di (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev1di (__neon_ptr_cast(const __builtin_neon_di *, __ax), __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1_lane_u64(__a, __b, __c) \
   ({ \
+     const uint64_t * __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev1di ((const int64_t *) __a, (__neon_int64x1_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev1di (__neon_ptr_cast(const __builtin_neon_di *, __ax), (__neon_int64x1_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1q_lane_s8(__a, __b, __c) \
   ({ \
+     const int8_t * __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev16qi (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1q_lane_s16(__a, __b, __c) \
   ({ \
+     const int16_t * __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev8hi (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1q_lane_s32(__a, __b, __c) \
   ({ \
+     const int32_t * __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev4si (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev4si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1q_lane_f32(__a, __b, __c) \
   ({ \
+     const float32_t * __ax = __a; \
+     float32x4_t __bx = __b; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev4sf (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev4sf (__ax, __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1q_lane_u8(__a, __b, __c) \
   ({ \
+     const uint8_t * __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev16qi ((const int8_t *) __a, (__neon_int8x16_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), (__neon_int8x16_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1q_lane_u16(__a, __b, __c) \
   ({ \
+     const uint16_t * __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev8hi ((const int16_t *) __a, (__neon_int16x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), (__neon_int16x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1q_lane_u32(__a, __b, __c) \
   ({ \
+     const uint32_t * __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev4si ((const int32_t *) __a, (__neon_int32x4_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev4si (__neon_ptr_cast(const __builtin_neon_si *, __ax), (__neon_int32x4_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1q_lane_p8(__a, __b, __c) \
   ({ \
+     const poly8_t * __ax = __a; \
+     poly8x16_t __bx = __b; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev16qi ((const int8_t *) __a, (__neon_int8x16_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), (__neon_int8x16_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1q_lane_p16(__a, __b, __c) \
   ({ \
+     const poly16_t * __ax = __a; \
+     poly16x8_t __bx = __b; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev8hi ((const int16_t *) __a, (__neon_int16x8_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), (__neon_int16x8_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1q_lane_s64(__a, __b, __c) \
   ({ \
+     const int64_t * __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev2di (__a, __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev2di (__neon_ptr_cast(const __builtin_neon_di *, __ax), __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1q_lane_u64(__a, __b, __c) \
   ({ \
+     const uint64_t * __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_lanev2di ((const int64_t *) __a, (__neon_int64x2_t) __b.val, __c); \
+     __rv.__o = __builtin_neon_vld1_lanev2di (__neon_ptr_cast(const __builtin_neon_di *, __ax), (__neon_int64x2_t) __bx.val, __c); \
      __rv.__i; \
    })
 
 #define vld1_dup_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv8qi (__a); \
+     __rv.__o = __builtin_neon_vld1_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_dup_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv4hi (__a); \
+     __rv.__o = __builtin_neon_vld1_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_dup_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv2si (__a); \
+     __rv.__o = __builtin_neon_vld1_dupv2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_dup_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv2sf (__a); \
+     __rv.__o = __builtin_neon_vld1_dupv2sf (__ax); \
      __rv.__i; \
    })
 
 #define vld1_dup_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_dup_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_dup_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv2si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_dup_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_dup_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_dup_s64(__a) \
   ({ \
+     const int64_t * __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv1di (__a); \
+     __rv.__o = __builtin_neon_vld1_dupv1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1_dup_u64(__a) \
   ({ \
+     const uint64_t * __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv1di ((const int64_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_dup_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv16qi (__a); \
+     __rv.__o = __builtin_neon_vld1_dupv16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_dup_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv8hi (__a); \
+     __rv.__o = __builtin_neon_vld1_dupv8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_dup_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv4si (__a); \
+     __rv.__o = __builtin_neon_vld1_dupv4si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_dup_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv4sf (__a); \
+     __rv.__o = __builtin_neon_vld1_dupv4sf (__ax); \
      __rv.__i; \
    })
 
 #define vld1q_dup_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv16qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_dup_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv8hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_dup_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv4si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv4si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_dup_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv16qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_dup_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv8hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_dup_s64(__a) \
   ({ \
+     const int64_t * __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv2di (__a); \
+     __rv.__o = __builtin_neon_vld1_dupv2di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld1q_dup_u64(__a) \
   ({ \
+     const uint64_t * __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld1_dupv2di ((const int64_t *) __a); \
+     __rv.__o = __builtin_neon_vld1_dupv2di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vst1_s8(__a, __b) \
-  __builtin_neon_vst1v8qi (__a, __b.val)
+  ({ \
+     int8_t * __ax = __a; \
+     int8x8_t __bx = __b; \
+     __builtin_neon_vst1v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bx.val); \
+   })
 
 #define vst1_s16(__a, __b) \
-  __builtin_neon_vst1v4hi (__a, __b.val)
+  ({ \
+     int16_t * __ax = __a; \
+     int16x4_t __bx = __b; \
+     __builtin_neon_vst1v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bx.val); \
+   })
 
 #define vst1_s32(__a, __b) \
-  __builtin_neon_vst1v2si (__a, __b.val)
+  ({ \
+     int32_t * __ax = __a; \
+     int32x2_t __bx = __b; \
+     __builtin_neon_vst1v2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bx.val); \
+   })
 
 #define vst1_s64(__a, __b) \
-  __builtin_neon_vst1v1di (__a, __b.val)
+  ({ \
+     int64_t * __ax = __a; \
+     int64x1_t __bx = __b; \
+     __builtin_neon_vst1v1di (__neon_ptr_cast(__builtin_neon_di *, __ax), __bx.val); \
+   })
 
 #define vst1_f32(__a, __b) \
-  __builtin_neon_vst1v2sf (__a, __b.val)
+  ({ \
+     float32_t * __ax = __a; \
+     float32x2_t __bx = __b; \
+     __builtin_neon_vst1v2sf (__ax, __bx.val); \
+   })
 
 #define vst1_u8(__a, __b) \
-  __builtin_neon_vst1v8qi ((int8_t *) __a, (__neon_int8x8_t) __b.val)
+  ({ \
+     uint8_t * __ax = __a; \
+     uint8x8_t __bx = __b; \
+     __builtin_neon_vst1v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), (__neon_int8x8_t) __bx.val); \
+   })
 
 #define vst1_u16(__a, __b) \
-  __builtin_neon_vst1v4hi ((int16_t *) __a, (__neon_int16x4_t) __b.val)
+  ({ \
+     uint16_t * __ax = __a; \
+     uint16x4_t __bx = __b; \
+     __builtin_neon_vst1v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), (__neon_int16x4_t) __bx.val); \
+   })
 
 #define vst1_u32(__a, __b) \
-  __builtin_neon_vst1v2si ((int32_t *) __a, (__neon_int32x2_t) __b.val)
+  ({ \
+     uint32_t * __ax = __a; \
+     uint32x2_t __bx = __b; \
+     __builtin_neon_vst1v2si (__neon_ptr_cast(__builtin_neon_si *, __ax), (__neon_int32x2_t) __bx.val); \
+   })
 
 #define vst1_u64(__a, __b) \
-  __builtin_neon_vst1v1di ((int64_t *) __a, (__neon_int64x1_t) __b.val)
+  ({ \
+     uint64_t * __ax = __a; \
+     uint64x1_t __bx = __b; \
+     __builtin_neon_vst1v1di (__neon_ptr_cast(__builtin_neon_di *, __ax), (__neon_int64x1_t) __bx.val); \
+   })
 
 #define vst1_p8(__a, __b) \
-  __builtin_neon_vst1v8qi ((int8_t *) __a, (__neon_int8x8_t) __b.val)
+  ({ \
+     poly8_t * __ax = __a; \
+     poly8x8_t __bx = __b; \
+     __builtin_neon_vst1v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), (__neon_int8x8_t) __bx.val); \
+   })
 
 #define vst1_p16(__a, __b) \
-  __builtin_neon_vst1v4hi ((int16_t *) __a, (__neon_int16x4_t) __b.val)
+  ({ \
+     poly16_t * __ax = __a; \
+     poly16x4_t __bx = __b; \
+     __builtin_neon_vst1v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), (__neon_int16x4_t) __bx.val); \
+   })
 
 #define vst1q_s8(__a, __b) \
-  __builtin_neon_vst1v16qi (__a, __b.val)
+  ({ \
+     int8_t * __ax = __a; \
+     int8x16_t __bx = __b; \
+     __builtin_neon_vst1v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bx.val); \
+   })
 
 #define vst1q_s16(__a, __b) \
-  __builtin_neon_vst1v8hi (__a, __b.val)
+  ({ \
+     int16_t * __ax = __a; \
+     int16x8_t __bx = __b; \
+     __builtin_neon_vst1v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bx.val); \
+   })
 
 #define vst1q_s32(__a, __b) \
-  __builtin_neon_vst1v4si (__a, __b.val)
+  ({ \
+     int32_t * __ax = __a; \
+     int32x4_t __bx = __b; \
+     __builtin_neon_vst1v4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bx.val); \
+   })
 
 #define vst1q_s64(__a, __b) \
-  __builtin_neon_vst1v2di (__a, __b.val)
+  ({ \
+     int64_t * __ax = __a; \
+     int64x2_t __bx = __b; \
+     __builtin_neon_vst1v2di (__neon_ptr_cast(__builtin_neon_di *, __ax), __bx.val); \
+   })
 
 #define vst1q_f32(__a, __b) \
-  __builtin_neon_vst1v4sf (__a, __b.val)
+  ({ \
+     float32_t * __ax = __a; \
+     float32x4_t __bx = __b; \
+     __builtin_neon_vst1v4sf (__ax, __bx.val); \
+   })
 
 #define vst1q_u8(__a, __b) \
-  __builtin_neon_vst1v16qi ((int8_t *) __a, (__neon_int8x16_t) __b.val)
+  ({ \
+     uint8_t * __ax = __a; \
+     uint8x16_t __bx = __b; \
+     __builtin_neon_vst1v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), (__neon_int8x16_t) __bx.val); \
+   })
 
 #define vst1q_u16(__a, __b) \
-  __builtin_neon_vst1v8hi ((int16_t *) __a, (__neon_int16x8_t) __b.val)
+  ({ \
+     uint16_t * __ax = __a; \
+     uint16x8_t __bx = __b; \
+     __builtin_neon_vst1v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), (__neon_int16x8_t) __bx.val); \
+   })
 
 #define vst1q_u32(__a, __b) \
-  __builtin_neon_vst1v4si ((int32_t *) __a, (__neon_int32x4_t) __b.val)
+  ({ \
+     uint32_t * __ax = __a; \
+     uint32x4_t __bx = __b; \
+     __builtin_neon_vst1v4si (__neon_ptr_cast(__builtin_neon_si *, __ax), (__neon_int32x4_t) __bx.val); \
+   })
 
 #define vst1q_u64(__a, __b) \
-  __builtin_neon_vst1v2di ((int64_t *) __a, (__neon_int64x2_t) __b.val)
+  ({ \
+     uint64_t * __ax = __a; \
+     uint64x2_t __bx = __b; \
+     __builtin_neon_vst1v2di (__neon_ptr_cast(__builtin_neon_di *, __ax), (__neon_int64x2_t) __bx.val); \
+   })
 
 #define vst1q_p8(__a, __b) \
-  __builtin_neon_vst1v16qi ((int8_t *) __a, (__neon_int8x16_t) __b.val)
+  ({ \
+     poly8_t * __ax = __a; \
+     poly8x16_t __bx = __b; \
+     __builtin_neon_vst1v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), (__neon_int8x16_t) __bx.val); \
+   })
 
 #define vst1q_p16(__a, __b) \
-  __builtin_neon_vst1v8hi ((int16_t *) __a, (__neon_int16x8_t) __b.val)
+  ({ \
+     poly16_t * __ax = __a; \
+     poly16x8_t __bx = __b; \
+     __builtin_neon_vst1v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), (__neon_int16x8_t) __bx.val); \
+   })
 
 #define vst1_lane_s8(__a, __b, __c) \
-  __builtin_neon_vst1_lanev8qi (__a, __b.val, __c)
+  ({ \
+     int8_t * __ax = __a; \
+     int8x8_t __bx = __b; \
+     __builtin_neon_vst1_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bx.val, __c); \
+   })
 
 #define vst1_lane_s16(__a, __b, __c) \
-  __builtin_neon_vst1_lanev4hi (__a, __b.val, __c)
+  ({ \
+     int16_t * __ax = __a; \
+     int16x4_t __bx = __b; \
+     __builtin_neon_vst1_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bx.val, __c); \
+   })
 
 #define vst1_lane_s32(__a, __b, __c) \
-  __builtin_neon_vst1_lanev2si (__a, __b.val, __c)
+  ({ \
+     int32_t * __ax = __a; \
+     int32x2_t __bx = __b; \
+     __builtin_neon_vst1_lanev2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bx.val, __c); \
+   })
 
 #define vst1_lane_f32(__a, __b, __c) \
-  __builtin_neon_vst1_lanev2sf (__a, __b.val, __c)
+  ({ \
+     float32_t * __ax = __a; \
+     float32x2_t __bx = __b; \
+     __builtin_neon_vst1_lanev2sf (__ax, __bx.val, __c); \
+   })
 
 #define vst1_lane_u8(__a, __b, __c) \
-  __builtin_neon_vst1_lanev8qi ((int8_t *) __a, (__neon_int8x8_t) __b.val, __c)
+  ({ \
+     uint8_t * __ax = __a; \
+     uint8x8_t __bx = __b; \
+     __builtin_neon_vst1_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), (__neon_int8x8_t) __bx.val, __c); \
+   })
 
 #define vst1_lane_u16(__a, __b, __c) \
-  __builtin_neon_vst1_lanev4hi ((int16_t *) __a, (__neon_int16x4_t) __b.val, __c)
+  ({ \
+     uint16_t * __ax = __a; \
+     uint16x4_t __bx = __b; \
+     __builtin_neon_vst1_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), (__neon_int16x4_t) __bx.val, __c); \
+   })
 
 #define vst1_lane_u32(__a, __b, __c) \
-  __builtin_neon_vst1_lanev2si ((int32_t *) __a, (__neon_int32x2_t) __b.val, __c)
+  ({ \
+     uint32_t * __ax = __a; \
+     uint32x2_t __bx = __b; \
+     __builtin_neon_vst1_lanev2si (__neon_ptr_cast(__builtin_neon_si *, __ax), (__neon_int32x2_t) __bx.val, __c); \
+   })
 
 #define vst1_lane_p8(__a, __b, __c) \
-  __builtin_neon_vst1_lanev8qi ((int8_t *) __a, (__neon_int8x8_t) __b.val, __c)
+  ({ \
+     poly8_t * __ax = __a; \
+     poly8x8_t __bx = __b; \
+     __builtin_neon_vst1_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), (__neon_int8x8_t) __bx.val, __c); \
+   })
 
 #define vst1_lane_p16(__a, __b, __c) \
-  __builtin_neon_vst1_lanev4hi ((int16_t *) __a, (__neon_int16x4_t) __b.val, __c)
+  ({ \
+     poly16_t * __ax = __a; \
+     poly16x4_t __bx = __b; \
+     __builtin_neon_vst1_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), (__neon_int16x4_t) __bx.val, __c); \
+   })
 
 #define vst1_lane_s64(__a, __b, __c) \
-  __builtin_neon_vst1_lanev1di (__a, __b.val, __c)
+  ({ \
+     int64_t * __ax = __a; \
+     int64x1_t __bx = __b; \
+     __builtin_neon_vst1_lanev1di (__neon_ptr_cast(__builtin_neon_di *, __ax), __bx.val, __c); \
+   })
 
 #define vst1_lane_u64(__a, __b, __c) \
-  __builtin_neon_vst1_lanev1di ((int64_t *) __a, (__neon_int64x1_t) __b.val, __c)
+  ({ \
+     uint64_t * __ax = __a; \
+     uint64x1_t __bx = __b; \
+     __builtin_neon_vst1_lanev1di (__neon_ptr_cast(__builtin_neon_di *, __ax), (__neon_int64x1_t) __bx.val, __c); \
+   })
 
 #define vst1q_lane_s8(__a, __b, __c) \
-  __builtin_neon_vst1_lanev16qi (__a, __b.val, __c)
+  ({ \
+     int8_t * __ax = __a; \
+     int8x16_t __bx = __b; \
+     __builtin_neon_vst1_lanev16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bx.val, __c); \
+   })
 
 #define vst1q_lane_s16(__a, __b, __c) \
-  __builtin_neon_vst1_lanev8hi (__a, __b.val, __c)
+  ({ \
+     int16_t * __ax = __a; \
+     int16x8_t __bx = __b; \
+     __builtin_neon_vst1_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bx.val, __c); \
+   })
 
 #define vst1q_lane_s32(__a, __b, __c) \
-  __builtin_neon_vst1_lanev4si (__a, __b.val, __c)
+  ({ \
+     int32_t * __ax = __a; \
+     int32x4_t __bx = __b; \
+     __builtin_neon_vst1_lanev4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bx.val, __c); \
+   })
 
 #define vst1q_lane_f32(__a, __b, __c) \
-  __builtin_neon_vst1_lanev4sf (__a, __b.val, __c)
+  ({ \
+     float32_t * __ax = __a; \
+     float32x4_t __bx = __b; \
+     __builtin_neon_vst1_lanev4sf (__ax, __bx.val, __c); \
+   })
 
 #define vst1q_lane_u8(__a, __b, __c) \
-  __builtin_neon_vst1_lanev16qi ((int8_t *) __a, (__neon_int8x16_t) __b.val, __c)
+  ({ \
+     uint8_t * __ax = __a; \
+     uint8x16_t __bx = __b; \
+     __builtin_neon_vst1_lanev16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), (__neon_int8x16_t) __bx.val, __c); \
+   })
 
 #define vst1q_lane_u16(__a, __b, __c) \
-  __builtin_neon_vst1_lanev8hi ((int16_t *) __a, (__neon_int16x8_t) __b.val, __c)
+  ({ \
+     uint16_t * __ax = __a; \
+     uint16x8_t __bx = __b; \
+     __builtin_neon_vst1_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), (__neon_int16x8_t) __bx.val, __c); \
+   })
 
 #define vst1q_lane_u32(__a, __b, __c) \
-  __builtin_neon_vst1_lanev4si ((int32_t *) __a, (__neon_int32x4_t) __b.val, __c)
+  ({ \
+     uint32_t * __ax = __a; \
+     uint32x4_t __bx = __b; \
+     __builtin_neon_vst1_lanev4si (__neon_ptr_cast(__builtin_neon_si *, __ax), (__neon_int32x4_t) __bx.val, __c); \
+   })
 
 #define vst1q_lane_p8(__a, __b, __c) \
-  __builtin_neon_vst1_lanev16qi ((int8_t *) __a, (__neon_int8x16_t) __b.val, __c)
+  ({ \
+     poly8_t * __ax = __a; \
+     poly8x16_t __bx = __b; \
+     __builtin_neon_vst1_lanev16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), (__neon_int8x16_t) __bx.val, __c); \
+   })
 
 #define vst1q_lane_p16(__a, __b, __c) \
-  __builtin_neon_vst1_lanev8hi ((int16_t *) __a, (__neon_int16x8_t) __b.val, __c)
+  ({ \
+     poly16_t * __ax = __a; \
+     poly16x8_t __bx = __b; \
+     __builtin_neon_vst1_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), (__neon_int16x8_t) __bx.val, __c); \
+   })
 
 #define vst1q_lane_s64(__a, __b, __c) \
-  __builtin_neon_vst1_lanev2di (__a, __b.val, __c)
+  ({ \
+     int64_t * __ax = __a; \
+     int64x2_t __bx = __b; \
+     __builtin_neon_vst1_lanev2di (__neon_ptr_cast(__builtin_neon_di *, __ax), __bx.val, __c); \
+   })
 
 #define vst1q_lane_u64(__a, __b, __c) \
-  __builtin_neon_vst1_lanev2di ((int64_t *) __a, (__neon_int64x2_t) __b.val, __c)
+  ({ \
+     uint64_t * __ax = __a; \
+     uint64x2_t __bx = __b; \
+     __builtin_neon_vst1_lanev2di (__neon_ptr_cast(__builtin_neon_di *, __ax), (__neon_int64x2_t) __bx.val, __c); \
+   })
 
 #define vld2_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v8qi (__a); \
+     __rv.__o = __builtin_neon_vld2v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v4hi (__a); \
+     __rv.__o = __builtin_neon_vld2v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v2si (__a); \
+     __rv.__o = __builtin_neon_vld2v2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x2x2_t __i; __neon_float32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v2sf (__a); \
+     __rv.__o = __builtin_neon_vld2v2sf (__ax); \
      __rv.__i; \
    })
 
 #define vld2_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld2v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld2v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v2si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld2v2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld2v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld2v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_s64(__a) \
   ({ \
+     const int64_t * __ax = __a; \
      union { int64x1x2_t __i; __neon_int64x1x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v1di (__a); \
+     __rv.__o = __builtin_neon_vld2v1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_u64(__a) \
   ({ \
+     const uint64_t * __ax = __a; \
      union { uint64x1x2_t __i; __neon_int64x1x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v1di ((const int64_t *) __a); \
+     __rv.__o = __builtin_neon_vld2v1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2q_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v16qi (__a); \
+     __rv.__o = __builtin_neon_vld2v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2q_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v8hi (__a); \
+     __rv.__o = __builtin_neon_vld2v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2q_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x4x2_t __i; __neon_int32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v4si (__a); \
+     __rv.__o = __builtin_neon_vld2v4si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2q_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x4x2_t __i; __neon_float32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v4sf (__a); \
+     __rv.__o = __builtin_neon_vld2v4sf (__ax); \
      __rv.__i; \
    })
 
 #define vld2q_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v16qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld2v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2q_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v8hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld2v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2q_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x4x2_t __i; __neon_int32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v4si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld2v4si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2q_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x16x2_t __i; __neon_int8x16x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v16qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld2v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2q_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2v8hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld2v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_lane_s8(__a, __b, __c) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
      union { int8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev8qi (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2_lane_s16(__a, __b, __c) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x4x2_t __i; __neon_int16x4x2_t __o; } __bu = { __b }; \
      union { int16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev4hi (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2_lane_s32(__a, __b, __c) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x2x2_t __i; __neon_int32x2x2_t __o; } __bu = { __b }; \
      union { int32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev2si (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev2si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2_lane_f32(__a, __b, __c) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x2x2_t __i; __neon_float32x2x2_t __o; } __bu = { __b }; \
      union { float32x2x2_t __i; __neon_float32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev2sf (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev2sf (__ax, __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2_lane_u8(__a, __b, __c) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
      union { uint8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev8qi ((const int8_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2_lane_u16(__a, __b, __c) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x4x2_t __i; __neon_int16x4x2_t __o; } __bu = { __b }; \
      union { uint16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev4hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2_lane_u32(__a, __b, __c) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x2x2_t __i; __neon_int32x2x2_t __o; } __bu = { __b }; \
      union { uint32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev2si ((const int32_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev2si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2_lane_p8(__a, __b, __c) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
      union { poly8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev8qi ((const int8_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2_lane_p16(__a, __b, __c) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x4x2_t __i; __neon_int16x4x2_t __o; } __bu = { __b }; \
      union { poly16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev4hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2q_lane_s16(__a, __b, __c) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x8x2_t __i; __neon_int16x8x2_t __o; } __bu = { __b }; \
      union { int16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev8hi (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2q_lane_s32(__a, __b, __c) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x4x2_t __i; __neon_int32x4x2_t __o; } __bu = { __b }; \
      union { int32x4x2_t __i; __neon_int32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev4si (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev4si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2q_lane_f32(__a, __b, __c) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x4x2_t __i; __neon_float32x4x2_t __o; } __bu = { __b }; \
      union { float32x4x2_t __i; __neon_float32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev4sf (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev4sf (__ax, __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2q_lane_u16(__a, __b, __c) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x8x2_t __i; __neon_int16x8x2_t __o; } __bu = { __b }; \
      union { uint16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev8hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2q_lane_u32(__a, __b, __c) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x4x2_t __i; __neon_int32x4x2_t __o; } __bu = { __b }; \
      union { uint32x4x2_t __i; __neon_int32x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev4si ((const int32_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev4si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2q_lane_p16(__a, __b, __c) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x8x2_t __i; __neon_int16x8x2_t __o; } __bu = { __b }; \
      union { poly16x8x2_t __i; __neon_int16x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_lanev8hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld2_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld2_dup_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_dupv8qi (__a); \
+     __rv.__o = __builtin_neon_vld2_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_dup_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_dupv4hi (__a); \
+     __rv.__o = __builtin_neon_vld2_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_dup_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_dupv2si (__a); \
+     __rv.__o = __builtin_neon_vld2_dupv2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_dup_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x2x2_t __i; __neon_float32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_dupv2sf (__a); \
+     __rv.__o = __builtin_neon_vld2_dupv2sf (__ax); \
      __rv.__i; \
    })
 
 #define vld2_dup_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_dupv8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld2_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_dup_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_dupv4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld2_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_dup_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x2x2_t __i; __neon_int32x2x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_dupv2si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld2_dupv2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_dup_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x8x2_t __i; __neon_int8x8x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_dupv8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld2_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_dup_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x4x2_t __i; __neon_int16x4x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_dupv4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld2_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_dup_s64(__a) \
   ({ \
+     const int64_t * __ax = __a; \
      union { int64x1x2_t __i; __neon_int64x1x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_dupv1di (__a); \
+     __rv.__o = __builtin_neon_vld2_dupv1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld2_dup_u64(__a) \
   ({ \
+     const uint64_t * __ax = __a; \
      union { uint64x1x2_t __i; __neon_int64x1x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld2_dupv1di ((const int64_t *) __a); \
+     __rv.__o = __builtin_neon_vld2_dupv1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vst2_s8(__a, __b) \
   ({ \
+     int8_t * __ax = __a; \
      union { int8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v8qi (__a, __bu.__o); \
+     __builtin_neon_vst2v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst2_s16(__a, __b) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x4x2_t __i; __neon_int16x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v4hi (__a, __bu.__o); \
+     __builtin_neon_vst2v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst2_s32(__a, __b) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x2x2_t __i; __neon_int32x2x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v2si (__a, __bu.__o); \
+     __builtin_neon_vst2v2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst2_f32(__a, __b) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x2x2_t __i; __neon_float32x2x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v2sf (__a, __bu.__o); \
+     __builtin_neon_vst2v2sf (__ax, __bu.__o); \
    })
 
 #define vst2_u8(__a, __b) \
   ({ \
+     uint8_t * __ax = __a; \
      union { uint8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v8qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst2v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst2_u16(__a, __b) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x4x2_t __i; __neon_int16x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v4hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst2v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst2_u32(__a, __b) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x2x2_t __i; __neon_int32x2x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v2si ((int32_t *) __a, __bu.__o); \
+     __builtin_neon_vst2v2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst2_p8(__a, __b) \
   ({ \
+     poly8_t * __ax = __a; \
      union { poly8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v8qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst2v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst2_p16(__a, __b) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x4x2_t __i; __neon_int16x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v4hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst2v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst2_s64(__a, __b) \
   ({ \
+     int64_t * __ax = __a; \
      union { int64x1x2_t __i; __neon_int64x1x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v1di (__a, __bu.__o); \
+     __builtin_neon_vst2v1di (__neon_ptr_cast(__builtin_neon_di *, __ax), __bu.__o); \
    })
 
 #define vst2_u64(__a, __b) \
   ({ \
+     uint64_t * __ax = __a; \
      union { uint64x1x2_t __i; __neon_int64x1x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v1di ((int64_t *) __a, __bu.__o); \
+     __builtin_neon_vst2v1di (__neon_ptr_cast(__builtin_neon_di *, __ax), __bu.__o); \
    })
 
 #define vst2q_s8(__a, __b) \
   ({ \
+     int8_t * __ax = __a; \
      union { int8x16x2_t __i; __neon_int8x16x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v16qi (__a, __bu.__o); \
+     __builtin_neon_vst2v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst2q_s16(__a, __b) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x8x2_t __i; __neon_int16x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v8hi (__a, __bu.__o); \
+     __builtin_neon_vst2v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst2q_s32(__a, __b) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x4x2_t __i; __neon_int32x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v4si (__a, __bu.__o); \
+     __builtin_neon_vst2v4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst2q_f32(__a, __b) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x4x2_t __i; __neon_float32x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v4sf (__a, __bu.__o); \
+     __builtin_neon_vst2v4sf (__ax, __bu.__o); \
    })
 
 #define vst2q_u8(__a, __b) \
   ({ \
+     uint8_t * __ax = __a; \
      union { uint8x16x2_t __i; __neon_int8x16x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v16qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst2v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst2q_u16(__a, __b) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x8x2_t __i; __neon_int16x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v8hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst2v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst2q_u32(__a, __b) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x4x2_t __i; __neon_int32x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v4si ((int32_t *) __a, __bu.__o); \
+     __builtin_neon_vst2v4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst2q_p8(__a, __b) \
   ({ \
+     poly8_t * __ax = __a; \
      union { poly8x16x2_t __i; __neon_int8x16x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v16qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst2v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst2q_p16(__a, __b) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x8x2_t __i; __neon_int16x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2v8hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst2v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst2_lane_s8(__a, __b, __c) \
   ({ \
+     int8_t * __ax = __a; \
      union { int8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev8qi (__a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o, __c); \
    })
 
 #define vst2_lane_s16(__a, __b, __c) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x4x2_t __i; __neon_int16x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev4hi (__a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst2_lane_s32(__a, __b, __c) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x2x2_t __i; __neon_int32x2x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev2si (__a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst2_lane_f32(__a, __b, __c) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x2x2_t __i; __neon_float32x2x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev2sf (__a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev2sf (__ax, __bu.__o, __c); \
    })
 
 #define vst2_lane_u8(__a, __b, __c) \
   ({ \
+     uint8_t * __ax = __a; \
      union { uint8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev8qi ((int8_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o, __c); \
    })
 
 #define vst2_lane_u16(__a, __b, __c) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x4x2_t __i; __neon_int16x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev4hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst2_lane_u32(__a, __b, __c) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x2x2_t __i; __neon_int32x2x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev2si ((int32_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst2_lane_p8(__a, __b, __c) \
   ({ \
+     poly8_t * __ax = __a; \
      union { poly8x8x2_t __i; __neon_int8x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev8qi ((int8_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o, __c); \
    })
 
 #define vst2_lane_p16(__a, __b, __c) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x4x2_t __i; __neon_int16x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev4hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst2q_lane_s16(__a, __b, __c) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x8x2_t __i; __neon_int16x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev8hi (__a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst2q_lane_s32(__a, __b, __c) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x4x2_t __i; __neon_int32x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev4si (__a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst2q_lane_f32(__a, __b, __c) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x4x2_t __i; __neon_float32x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev4sf (__a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev4sf (__ax, __bu.__o, __c); \
    })
 
 #define vst2q_lane_u16(__a, __b, __c) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x8x2_t __i; __neon_int16x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev8hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst2q_lane_u32(__a, __b, __c) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x4x2_t __i; __neon_int32x4x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev4si ((int32_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst2q_lane_p16(__a, __b, __c) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x8x2_t __i; __neon_int16x8x2_t __o; } __bu = { __b }; \
-     __builtin_neon_vst2_lanev8hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst2_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vld3_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x8x3_t __i; __neon_int8x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v8qi (__a); \
+     __rv.__o = __builtin_neon_vld3v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x4x3_t __i; __neon_int16x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v4hi (__a); \
+     __rv.__o = __builtin_neon_vld3v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x2x3_t __i; __neon_int32x2x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v2si (__a); \
+     __rv.__o = __builtin_neon_vld3v2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x2x3_t __i; __neon_float32x2x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v2sf (__a); \
+     __rv.__o = __builtin_neon_vld3v2sf (__ax); \
      __rv.__i; \
    })
 
 #define vld3_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x8x3_t __i; __neon_int8x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld3v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x4x3_t __i; __neon_int16x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld3v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x2x3_t __i; __neon_int32x2x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v2si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld3v2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x8x3_t __i; __neon_int8x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld3v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x4x3_t __i; __neon_int16x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld3v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_s64(__a) \
   ({ \
+     const int64_t * __ax = __a; \
      union { int64x1x3_t __i; __neon_int64x1x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v1di (__a); \
+     __rv.__o = __builtin_neon_vld3v1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_u64(__a) \
   ({ \
+     const uint64_t * __ax = __a; \
      union { uint64x1x3_t __i; __neon_int64x1x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v1di ((const int64_t *) __a); \
+     __rv.__o = __builtin_neon_vld3v1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3q_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x16x3_t __i; __neon_int8x16x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v16qi (__a); \
+     __rv.__o = __builtin_neon_vld3v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3q_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x8x3_t __i; __neon_int16x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v8hi (__a); \
+     __rv.__o = __builtin_neon_vld3v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3q_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x4x3_t __i; __neon_int32x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v4si (__a); \
+     __rv.__o = __builtin_neon_vld3v4si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3q_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x4x3_t __i; __neon_float32x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v4sf (__a); \
+     __rv.__o = __builtin_neon_vld3v4sf (__ax); \
      __rv.__i; \
    })
 
 #define vld3q_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x16x3_t __i; __neon_int8x16x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v16qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld3v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3q_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x8x3_t __i; __neon_int16x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v8hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld3v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3q_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x4x3_t __i; __neon_int32x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v4si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld3v4si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3q_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x16x3_t __i; __neon_int8x16x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v16qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld3v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3q_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x8x3_t __i; __neon_int16x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3v8hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld3v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_lane_s8(__a, __b, __c) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
      union { int8x8x3_t __i; __neon_int8x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev8qi (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3_lane_s16(__a, __b, __c) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x4x3_t __i; __neon_int16x4x3_t __o; } __bu = { __b }; \
      union { int16x4x3_t __i; __neon_int16x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev4hi (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3_lane_s32(__a, __b, __c) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x2x3_t __i; __neon_int32x2x3_t __o; } __bu = { __b }; \
      union { int32x2x3_t __i; __neon_int32x2x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev2si (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev2si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3_lane_f32(__a, __b, __c) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x2x3_t __i; __neon_float32x2x3_t __o; } __bu = { __b }; \
      union { float32x2x3_t __i; __neon_float32x2x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev2sf (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev2sf (__ax, __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3_lane_u8(__a, __b, __c) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
      union { uint8x8x3_t __i; __neon_int8x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev8qi ((const int8_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3_lane_u16(__a, __b, __c) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x4x3_t __i; __neon_int16x4x3_t __o; } __bu = { __b }; \
      union { uint16x4x3_t __i; __neon_int16x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev4hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3_lane_u32(__a, __b, __c) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x2x3_t __i; __neon_int32x2x3_t __o; } __bu = { __b }; \
      union { uint32x2x3_t __i; __neon_int32x2x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev2si ((const int32_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev2si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3_lane_p8(__a, __b, __c) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
      union { poly8x8x3_t __i; __neon_int8x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev8qi ((const int8_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3_lane_p16(__a, __b, __c) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x4x3_t __i; __neon_int16x4x3_t __o; } __bu = { __b }; \
      union { poly16x4x3_t __i; __neon_int16x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev4hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3q_lane_s16(__a, __b, __c) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x8x3_t __i; __neon_int16x8x3_t __o; } __bu = { __b }; \
      union { int16x8x3_t __i; __neon_int16x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev8hi (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3q_lane_s32(__a, __b, __c) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x4x3_t __i; __neon_int32x4x3_t __o; } __bu = { __b }; \
      union { int32x4x3_t __i; __neon_int32x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev4si (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev4si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3q_lane_f32(__a, __b, __c) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x4x3_t __i; __neon_float32x4x3_t __o; } __bu = { __b }; \
      union { float32x4x3_t __i; __neon_float32x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev4sf (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev4sf (__ax, __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3q_lane_u16(__a, __b, __c) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x8x3_t __i; __neon_int16x8x3_t __o; } __bu = { __b }; \
      union { uint16x8x3_t __i; __neon_int16x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev8hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3q_lane_u32(__a, __b, __c) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x4x3_t __i; __neon_int32x4x3_t __o; } __bu = { __b }; \
      union { uint32x4x3_t __i; __neon_int32x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev4si ((const int32_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev4si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3q_lane_p16(__a, __b, __c) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x8x3_t __i; __neon_int16x8x3_t __o; } __bu = { __b }; \
      union { poly16x8x3_t __i; __neon_int16x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_lanev8hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld3_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld3_dup_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x8x3_t __i; __neon_int8x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_dupv8qi (__a); \
+     __rv.__o = __builtin_neon_vld3_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_dup_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x4x3_t __i; __neon_int16x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_dupv4hi (__a); \
+     __rv.__o = __builtin_neon_vld3_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_dup_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x2x3_t __i; __neon_int32x2x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_dupv2si (__a); \
+     __rv.__o = __builtin_neon_vld3_dupv2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_dup_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x2x3_t __i; __neon_float32x2x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_dupv2sf (__a); \
+     __rv.__o = __builtin_neon_vld3_dupv2sf (__ax); \
      __rv.__i; \
    })
 
 #define vld3_dup_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x8x3_t __i; __neon_int8x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_dupv8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld3_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_dup_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x4x3_t __i; __neon_int16x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_dupv4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld3_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_dup_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x2x3_t __i; __neon_int32x2x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_dupv2si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld3_dupv2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_dup_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x8x3_t __i; __neon_int8x8x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_dupv8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld3_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_dup_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x4x3_t __i; __neon_int16x4x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_dupv4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld3_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_dup_s64(__a) \
   ({ \
+     const int64_t * __ax = __a; \
      union { int64x1x3_t __i; __neon_int64x1x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_dupv1di (__a); \
+     __rv.__o = __builtin_neon_vld3_dupv1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld3_dup_u64(__a) \
   ({ \
+     const uint64_t * __ax = __a; \
      union { uint64x1x3_t __i; __neon_int64x1x3_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld3_dupv1di ((const int64_t *) __a); \
+     __rv.__o = __builtin_neon_vld3_dupv1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vst3_s8(__a, __b) \
   ({ \
+     int8_t * __ax = __a; \
      union { int8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v8qi (__a, __bu.__o); \
+     __builtin_neon_vst3v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst3_s16(__a, __b) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x4x3_t __i; __neon_int16x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v4hi (__a, __bu.__o); \
+     __builtin_neon_vst3v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst3_s32(__a, __b) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x2x3_t __i; __neon_int32x2x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v2si (__a, __bu.__o); \
+     __builtin_neon_vst3v2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst3_f32(__a, __b) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x2x3_t __i; __neon_float32x2x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v2sf (__a, __bu.__o); \
+     __builtin_neon_vst3v2sf (__ax, __bu.__o); \
    })
 
 #define vst3_u8(__a, __b) \
   ({ \
+     uint8_t * __ax = __a; \
      union { uint8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v8qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst3v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst3_u16(__a, __b) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x4x3_t __i; __neon_int16x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v4hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst3v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst3_u32(__a, __b) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x2x3_t __i; __neon_int32x2x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v2si ((int32_t *) __a, __bu.__o); \
+     __builtin_neon_vst3v2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst3_p8(__a, __b) \
   ({ \
+     poly8_t * __ax = __a; \
      union { poly8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v8qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst3v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst3_p16(__a, __b) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x4x3_t __i; __neon_int16x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v4hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst3v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst3_s64(__a, __b) \
   ({ \
+     int64_t * __ax = __a; \
      union { int64x1x3_t __i; __neon_int64x1x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v1di (__a, __bu.__o); \
+     __builtin_neon_vst3v1di (__neon_ptr_cast(__builtin_neon_di *, __ax), __bu.__o); \
    })
 
 #define vst3_u64(__a, __b) \
   ({ \
+     uint64_t * __ax = __a; \
      union { uint64x1x3_t __i; __neon_int64x1x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v1di ((int64_t *) __a, __bu.__o); \
+     __builtin_neon_vst3v1di (__neon_ptr_cast(__builtin_neon_di *, __ax), __bu.__o); \
    })
 
 #define vst3q_s8(__a, __b) \
   ({ \
+     int8_t * __ax = __a; \
      union { int8x16x3_t __i; __neon_int8x16x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v16qi (__a, __bu.__o); \
+     __builtin_neon_vst3v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst3q_s16(__a, __b) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x8x3_t __i; __neon_int16x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v8hi (__a, __bu.__o); \
+     __builtin_neon_vst3v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst3q_s32(__a, __b) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x4x3_t __i; __neon_int32x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v4si (__a, __bu.__o); \
+     __builtin_neon_vst3v4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst3q_f32(__a, __b) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x4x3_t __i; __neon_float32x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v4sf (__a, __bu.__o); \
+     __builtin_neon_vst3v4sf (__ax, __bu.__o); \
    })
 
 #define vst3q_u8(__a, __b) \
   ({ \
+     uint8_t * __ax = __a; \
      union { uint8x16x3_t __i; __neon_int8x16x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v16qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst3v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst3q_u16(__a, __b) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x8x3_t __i; __neon_int16x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v8hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst3v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst3q_u32(__a, __b) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x4x3_t __i; __neon_int32x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v4si ((int32_t *) __a, __bu.__o); \
+     __builtin_neon_vst3v4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst3q_p8(__a, __b) \
   ({ \
+     poly8_t * __ax = __a; \
      union { poly8x16x3_t __i; __neon_int8x16x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v16qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst3v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst3q_p16(__a, __b) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x8x3_t __i; __neon_int16x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3v8hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst3v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst3_lane_s8(__a, __b, __c) \
   ({ \
+     int8_t * __ax = __a; \
      union { int8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev8qi (__a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o, __c); \
    })
 
 #define vst3_lane_s16(__a, __b, __c) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x4x3_t __i; __neon_int16x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev4hi (__a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst3_lane_s32(__a, __b, __c) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x2x3_t __i; __neon_int32x2x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev2si (__a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst3_lane_f32(__a, __b, __c) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x2x3_t __i; __neon_float32x2x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev2sf (__a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev2sf (__ax, __bu.__o, __c); \
    })
 
 #define vst3_lane_u8(__a, __b, __c) \
   ({ \
+     uint8_t * __ax = __a; \
      union { uint8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev8qi ((int8_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o, __c); \
    })
 
 #define vst3_lane_u16(__a, __b, __c) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x4x3_t __i; __neon_int16x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev4hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst3_lane_u32(__a, __b, __c) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x2x3_t __i; __neon_int32x2x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev2si ((int32_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst3_lane_p8(__a, __b, __c) \
   ({ \
+     poly8_t * __ax = __a; \
      union { poly8x8x3_t __i; __neon_int8x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev8qi ((int8_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o, __c); \
    })
 
 #define vst3_lane_p16(__a, __b, __c) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x4x3_t __i; __neon_int16x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev4hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst3q_lane_s16(__a, __b, __c) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x8x3_t __i; __neon_int16x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev8hi (__a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst3q_lane_s32(__a, __b, __c) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x4x3_t __i; __neon_int32x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev4si (__a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst3q_lane_f32(__a, __b, __c) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x4x3_t __i; __neon_float32x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev4sf (__a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev4sf (__ax, __bu.__o, __c); \
    })
 
 #define vst3q_lane_u16(__a, __b, __c) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x8x3_t __i; __neon_int16x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev8hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst3q_lane_u32(__a, __b, __c) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x4x3_t __i; __neon_int32x4x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev4si ((int32_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst3q_lane_p16(__a, __b, __c) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x8x3_t __i; __neon_int16x8x3_t __o; } __bu = { __b }; \
-     __builtin_neon_vst3_lanev8hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst3_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vld4_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x8x4_t __i; __neon_int8x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v8qi (__a); \
+     __rv.__o = __builtin_neon_vld4v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x4x4_t __i; __neon_int16x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v4hi (__a); \
+     __rv.__o = __builtin_neon_vld4v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x2x4_t __i; __neon_int32x2x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v2si (__a); \
+     __rv.__o = __builtin_neon_vld4v2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x2x4_t __i; __neon_float32x2x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v2sf (__a); \
+     __rv.__o = __builtin_neon_vld4v2sf (__ax); \
      __rv.__i; \
    })
 
 #define vld4_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x8x4_t __i; __neon_int8x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld4v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x4x4_t __i; __neon_int16x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld4v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x2x4_t __i; __neon_int32x2x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v2si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld4v2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x8x4_t __i; __neon_int8x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld4v8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x4x4_t __i; __neon_int16x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld4v4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_s64(__a) \
   ({ \
+     const int64_t * __ax = __a; \
      union { int64x1x4_t __i; __neon_int64x1x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v1di (__a); \
+     __rv.__o = __builtin_neon_vld4v1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_u64(__a) \
   ({ \
+     const uint64_t * __ax = __a; \
      union { uint64x1x4_t __i; __neon_int64x1x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v1di ((const int64_t *) __a); \
+     __rv.__o = __builtin_neon_vld4v1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4q_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x16x4_t __i; __neon_int8x16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v16qi (__a); \
+     __rv.__o = __builtin_neon_vld4v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4q_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x8x4_t __i; __neon_int16x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v8hi (__a); \
+     __rv.__o = __builtin_neon_vld4v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4q_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x4x4_t __i; __neon_int32x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v4si (__a); \
+     __rv.__o = __builtin_neon_vld4v4si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4q_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x4x4_t __i; __neon_float32x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v4sf (__a); \
+     __rv.__o = __builtin_neon_vld4v4sf (__ax); \
      __rv.__i; \
    })
 
 #define vld4q_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x16x4_t __i; __neon_int8x16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v16qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld4v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4q_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x8x4_t __i; __neon_int16x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v8hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld4v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4q_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x4x4_t __i; __neon_int32x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v4si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld4v4si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4q_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x16x4_t __i; __neon_int8x16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v16qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld4v16qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4q_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x8x4_t __i; __neon_int16x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4v8hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld4v8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_lane_s8(__a, __b, __c) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
      union { int8x8x4_t __i; __neon_int8x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev8qi (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4_lane_s16(__a, __b, __c) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x4x4_t __i; __neon_int16x4x4_t __o; } __bu = { __b }; \
      union { int16x4x4_t __i; __neon_int16x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev4hi (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4_lane_s32(__a, __b, __c) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x2x4_t __i; __neon_int32x2x4_t __o; } __bu = { __b }; \
      union { int32x2x4_t __i; __neon_int32x2x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev2si (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev2si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4_lane_f32(__a, __b, __c) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x2x4_t __i; __neon_float32x2x4_t __o; } __bu = { __b }; \
      union { float32x2x4_t __i; __neon_float32x2x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev2sf (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev2sf (__ax, __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4_lane_u8(__a, __b, __c) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
      union { uint8x8x4_t __i; __neon_int8x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev8qi ((const int8_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4_lane_u16(__a, __b, __c) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x4x4_t __i; __neon_int16x4x4_t __o; } __bu = { __b }; \
      union { uint16x4x4_t __i; __neon_int16x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev4hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4_lane_u32(__a, __b, __c) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x2x4_t __i; __neon_int32x2x4_t __o; } __bu = { __b }; \
      union { uint32x2x4_t __i; __neon_int32x2x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev2si ((const int32_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev2si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4_lane_p8(__a, __b, __c) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
      union { poly8x8x4_t __i; __neon_int8x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev8qi ((const int8_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4_lane_p16(__a, __b, __c) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x4x4_t __i; __neon_int16x4x4_t __o; } __bu = { __b }; \
      union { poly16x4x4_t __i; __neon_int16x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev4hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4q_lane_s16(__a, __b, __c) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x8x4_t __i; __neon_int16x8x4_t __o; } __bu = { __b }; \
      union { int16x8x4_t __i; __neon_int16x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev8hi (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4q_lane_s32(__a, __b, __c) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x4x4_t __i; __neon_int32x4x4_t __o; } __bu = { __b }; \
      union { int32x4x4_t __i; __neon_int32x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev4si (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev4si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4q_lane_f32(__a, __b, __c) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x4x4_t __i; __neon_float32x4x4_t __o; } __bu = { __b }; \
      union { float32x4x4_t __i; __neon_float32x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev4sf (__a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev4sf (__ax, __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4q_lane_u16(__a, __b, __c) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x8x4_t __i; __neon_int16x8x4_t __o; } __bu = { __b }; \
      union { uint16x8x4_t __i; __neon_int16x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev8hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4q_lane_u32(__a, __b, __c) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x4x4_t __i; __neon_int32x4x4_t __o; } __bu = { __b }; \
      union { uint32x4x4_t __i; __neon_int32x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev4si ((const int32_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev4si (__neon_ptr_cast(const __builtin_neon_si *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4q_lane_p16(__a, __b, __c) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x8x4_t __i; __neon_int16x8x4_t __o; } __bu = { __b }; \
      union { poly16x8x4_t __i; __neon_int16x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_lanev8hi ((const int16_t *) __a, __bu.__o, __c); \
+     __rv.__o = __builtin_neon_vld4_lanev8hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax), __bu.__o, __c); \
      __rv.__i; \
    })
 
 #define vld4_dup_s8(__a) \
   ({ \
+     const int8_t * __ax = __a; \
      union { int8x8x4_t __i; __neon_int8x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_dupv8qi (__a); \
+     __rv.__o = __builtin_neon_vld4_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_dup_s16(__a) \
   ({ \
+     const int16_t * __ax = __a; \
      union { int16x4x4_t __i; __neon_int16x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_dupv4hi (__a); \
+     __rv.__o = __builtin_neon_vld4_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_dup_s32(__a) \
   ({ \
+     const int32_t * __ax = __a; \
      union { int32x2x4_t __i; __neon_int32x2x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_dupv2si (__a); \
+     __rv.__o = __builtin_neon_vld4_dupv2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_dup_f32(__a) \
   ({ \
+     const float32_t * __ax = __a; \
      union { float32x2x4_t __i; __neon_float32x2x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_dupv2sf (__a); \
+     __rv.__o = __builtin_neon_vld4_dupv2sf (__ax); \
      __rv.__i; \
    })
 
 #define vld4_dup_u8(__a) \
   ({ \
+     const uint8_t * __ax = __a; \
      union { uint8x8x4_t __i; __neon_int8x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_dupv8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld4_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_dup_u16(__a) \
   ({ \
+     const uint16_t * __ax = __a; \
      union { uint16x4x4_t __i; __neon_int16x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_dupv4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld4_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_dup_u32(__a) \
   ({ \
+     const uint32_t * __ax = __a; \
      union { uint32x2x4_t __i; __neon_int32x2x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_dupv2si ((const int32_t *) __a); \
+     __rv.__o = __builtin_neon_vld4_dupv2si (__neon_ptr_cast(const __builtin_neon_si *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_dup_p8(__a) \
   ({ \
+     const poly8_t * __ax = __a; \
      union { poly8x8x4_t __i; __neon_int8x8x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_dupv8qi ((const int8_t *) __a); \
+     __rv.__o = __builtin_neon_vld4_dupv8qi (__neon_ptr_cast(const __builtin_neon_qi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_dup_p16(__a) \
   ({ \
+     const poly16_t * __ax = __a; \
      union { poly16x4x4_t __i; __neon_int16x4x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_dupv4hi ((const int16_t *) __a); \
+     __rv.__o = __builtin_neon_vld4_dupv4hi (__neon_ptr_cast(const __builtin_neon_hi *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_dup_s64(__a) \
   ({ \
+     const int64_t * __ax = __a; \
      union { int64x1x4_t __i; __neon_int64x1x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_dupv1di (__a); \
+     __rv.__o = __builtin_neon_vld4_dupv1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vld4_dup_u64(__a) \
   ({ \
+     const uint64_t * __ax = __a; \
      union { uint64x1x4_t __i; __neon_int64x1x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vld4_dupv1di ((const int64_t *) __a); \
+     __rv.__o = __builtin_neon_vld4_dupv1di (__neon_ptr_cast(const __builtin_neon_di *, __ax)); \
      __rv.__i; \
    })
 
 #define vst4_s8(__a, __b) \
   ({ \
+     int8_t * __ax = __a; \
      union { int8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v8qi (__a, __bu.__o); \
+     __builtin_neon_vst4v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst4_s16(__a, __b) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x4x4_t __i; __neon_int16x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v4hi (__a, __bu.__o); \
+     __builtin_neon_vst4v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst4_s32(__a, __b) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x2x4_t __i; __neon_int32x2x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v2si (__a, __bu.__o); \
+     __builtin_neon_vst4v2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst4_f32(__a, __b) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x2x4_t __i; __neon_float32x2x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v2sf (__a, __bu.__o); \
+     __builtin_neon_vst4v2sf (__ax, __bu.__o); \
    })
 
 #define vst4_u8(__a, __b) \
   ({ \
+     uint8_t * __ax = __a; \
      union { uint8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v8qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst4v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst4_u16(__a, __b) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x4x4_t __i; __neon_int16x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v4hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst4v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst4_u32(__a, __b) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x2x4_t __i; __neon_int32x2x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v2si ((int32_t *) __a, __bu.__o); \
+     __builtin_neon_vst4v2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst4_p8(__a, __b) \
   ({ \
+     poly8_t * __ax = __a; \
      union { poly8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v8qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst4v8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst4_p16(__a, __b) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x4x4_t __i; __neon_int16x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v4hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst4v4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst4_s64(__a, __b) \
   ({ \
+     int64_t * __ax = __a; \
      union { int64x1x4_t __i; __neon_int64x1x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v1di (__a, __bu.__o); \
+     __builtin_neon_vst4v1di (__neon_ptr_cast(__builtin_neon_di *, __ax), __bu.__o); \
    })
 
 #define vst4_u64(__a, __b) \
   ({ \
+     uint64_t * __ax = __a; \
      union { uint64x1x4_t __i; __neon_int64x1x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v1di ((int64_t *) __a, __bu.__o); \
+     __builtin_neon_vst4v1di (__neon_ptr_cast(__builtin_neon_di *, __ax), __bu.__o); \
    })
 
 #define vst4q_s8(__a, __b) \
   ({ \
+     int8_t * __ax = __a; \
      union { int8x16x4_t __i; __neon_int8x16x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v16qi (__a, __bu.__o); \
+     __builtin_neon_vst4v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst4q_s16(__a, __b) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x8x4_t __i; __neon_int16x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v8hi (__a, __bu.__o); \
+     __builtin_neon_vst4v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst4q_s32(__a, __b) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x4x4_t __i; __neon_int32x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v4si (__a, __bu.__o); \
+     __builtin_neon_vst4v4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst4q_f32(__a, __b) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x4x4_t __i; __neon_float32x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v4sf (__a, __bu.__o); \
+     __builtin_neon_vst4v4sf (__ax, __bu.__o); \
    })
 
 #define vst4q_u8(__a, __b) \
   ({ \
+     uint8_t * __ax = __a; \
      union { uint8x16x4_t __i; __neon_int8x16x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v16qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst4v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst4q_u16(__a, __b) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x8x4_t __i; __neon_int16x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v8hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst4v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst4q_u32(__a, __b) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x4x4_t __i; __neon_int32x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v4si ((int32_t *) __a, __bu.__o); \
+     __builtin_neon_vst4v4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o); \
    })
 
 #define vst4q_p8(__a, __b) \
   ({ \
+     poly8_t * __ax = __a; \
      union { poly8x16x4_t __i; __neon_int8x16x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v16qi ((int8_t *) __a, __bu.__o); \
+     __builtin_neon_vst4v16qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o); \
    })
 
 #define vst4q_p16(__a, __b) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x8x4_t __i; __neon_int16x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4v8hi ((int16_t *) __a, __bu.__o); \
+     __builtin_neon_vst4v8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o); \
    })
 
 #define vst4_lane_s8(__a, __b, __c) \
   ({ \
+     int8_t * __ax = __a; \
      union { int8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev8qi (__a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o, __c); \
    })
 
 #define vst4_lane_s16(__a, __b, __c) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x4x4_t __i; __neon_int16x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev4hi (__a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst4_lane_s32(__a, __b, __c) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x2x4_t __i; __neon_int32x2x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev2si (__a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst4_lane_f32(__a, __b, __c) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x2x4_t __i; __neon_float32x2x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev2sf (__a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev2sf (__ax, __bu.__o, __c); \
    })
 
 #define vst4_lane_u8(__a, __b, __c) \
   ({ \
+     uint8_t * __ax = __a; \
      union { uint8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev8qi ((int8_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o, __c); \
    })
 
 #define vst4_lane_u16(__a, __b, __c) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x4x4_t __i; __neon_int16x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev4hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst4_lane_u32(__a, __b, __c) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x2x4_t __i; __neon_int32x2x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev2si ((int32_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev2si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst4_lane_p8(__a, __b, __c) \
   ({ \
+     poly8_t * __ax = __a; \
      union { poly8x8x4_t __i; __neon_int8x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev8qi ((int8_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev8qi (__neon_ptr_cast(__builtin_neon_qi *, __ax), __bu.__o, __c); \
    })
 
 #define vst4_lane_p16(__a, __b, __c) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x4x4_t __i; __neon_int16x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev4hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev4hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst4q_lane_s16(__a, __b, __c) \
   ({ \
+     int16_t * __ax = __a; \
      union { int16x8x4_t __i; __neon_int16x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev8hi (__a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst4q_lane_s32(__a, __b, __c) \
   ({ \
+     int32_t * __ax = __a; \
      union { int32x4x4_t __i; __neon_int32x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev4si (__a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst4q_lane_f32(__a, __b, __c) \
   ({ \
+     float32_t * __ax = __a; \
      union { float32x4x4_t __i; __neon_float32x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev4sf (__a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev4sf (__ax, __bu.__o, __c); \
    })
 
 #define vst4q_lane_u16(__a, __b, __c) \
   ({ \
+     uint16_t * __ax = __a; \
      union { uint16x8x4_t __i; __neon_int16x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev8hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vst4q_lane_u32(__a, __b, __c) \
   ({ \
+     uint32_t * __ax = __a; \
      union { uint32x4x4_t __i; __neon_int32x4x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev4si ((int32_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev4si (__neon_ptr_cast(__builtin_neon_si *, __ax), __bu.__o, __c); \
    })
 
 #define vst4q_lane_p16(__a, __b, __c) \
   ({ \
+     poly16_t * __ax = __a; \
      union { poly16x8x4_t __i; __neon_int16x8x4_t __o; } __bu = { __b }; \
-     __builtin_neon_vst4_lanev8hi ((int16_t *) __a, __bu.__o, __c); \
+     __builtin_neon_vst4_lanev8hi (__neon_ptr_cast(__builtin_neon_hi *, __ax), __bu.__o, __c); \
    })
 
 #define vand_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vandv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vand_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vandv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vand_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vandv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vand_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv1di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vandv1di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vand_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vandv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vand_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vandv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vand_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vandv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vand_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vandv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vandq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vandv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vandq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vandv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vandq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vandv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vandq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vandv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vandq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vandv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vandq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vandv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vandq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vandv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vandq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vandv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vandv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorr_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vorrv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorr_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vorrv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorr_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vorrv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorr_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv1di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vorrv1di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorr_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vorrv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorr_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vorrv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorr_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vorrv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorr_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vorrv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorrq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vorrv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorrq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vorrv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorrq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vorrv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorrq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vorrv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorrq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vorrv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorrq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vorrv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorrq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vorrv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorrq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vorrv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vorrv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define veor_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_veorv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define veor_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_veorv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define veor_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_veorv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define veor_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv1di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_veorv1di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define veor_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_veorv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define veor_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_veorv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define veor_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_veorv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define veor_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_veorv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define veorq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_veorv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define veorq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_veorv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define veorq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_veorv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define veorq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_veorv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define veorq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_veorv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define veorq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_veorv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define veorq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_veorv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define veorq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_veorv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_veorv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vbic_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vbicv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vbic_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vbicv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vbic_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vbicv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vbic_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv1di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vbicv1di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vbic_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vbicv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vbic_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vbicv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vbic_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vbicv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vbic_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vbicv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vbicq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vbicv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vbicq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vbicv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vbicq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vbicv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vbicq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vbicv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vbicq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vbicv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vbicq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vbicv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vbicq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vbicv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vbicq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vbicv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vbicv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorn_s8(__a, __b) \
   ({ \
+     int8x8_t __ax = __a; \
+     int8x8_t __bx = __b; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv8qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vornv8qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorn_s16(__a, __b) \
   ({ \
+     int16x4_t __ax = __a; \
+     int16x4_t __bx = __b; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv4hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vornv4hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorn_s32(__a, __b) \
   ({ \
+     int32x2_t __ax = __a; \
+     int32x2_t __bx = __b; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv2si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vornv2si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorn_s64(__a, __b) \
   ({ \
+     int64x1_t __ax = __a; \
+     int64x1_t __bx = __b; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv1di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vornv1di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vorn_u8(__a, __b) \
   ({ \
+     uint8x8_t __ax = __a; \
+     uint8x8_t __bx = __b; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv8qi ((__neon_int8x8_t) __a.val, (__neon_int8x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vornv8qi ((__neon_int8x8_t) __ax.val, (__neon_int8x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorn_u16(__a, __b) \
   ({ \
+     uint16x4_t __ax = __a; \
+     uint16x4_t __bx = __b; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv4hi ((__neon_int16x4_t) __a.val, (__neon_int16x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vornv4hi ((__neon_int16x4_t) __ax.val, (__neon_int16x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorn_u32(__a, __b) \
   ({ \
+     uint32x2_t __ax = __a; \
+     uint32x2_t __bx = __b; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv2si ((__neon_int32x2_t) __a.val, (__neon_int32x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vornv2si ((__neon_int32x2_t) __ax.val, (__neon_int32x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vorn_u64(__a, __b) \
   ({ \
+     uint64x1_t __ax = __a; \
+     uint64x1_t __bx = __b; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv1di ((__neon_int64x1_t) __a.val, (__neon_int64x1_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vornv1di ((__neon_int64x1_t) __ax.val, (__neon_int64x1_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vornq_s8(__a, __b) \
   ({ \
+     int8x16_t __ax = __a; \
+     int8x16_t __bx = __b; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv16qi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vornv16qi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vornq_s16(__a, __b) \
   ({ \
+     int16x8_t __ax = __a; \
+     int16x8_t __bx = __b; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv8hi (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vornv8hi (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vornq_s32(__a, __b) \
   ({ \
+     int32x4_t __ax = __a; \
+     int32x4_t __bx = __b; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv4si (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vornv4si (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vornq_s64(__a, __b) \
   ({ \
+     int64x2_t __ax = __a; \
+     int64x2_t __bx = __b; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv2di (__a.val, __b.val, 1); \
+     __rv.__o = __builtin_neon_vornv2di (__ax.val, __bx.val, 1); \
      __rv.__i; \
    })
 
 #define vornq_u8(__a, __b) \
   ({ \
+     uint8x16_t __ax = __a; \
+     uint8x16_t __bx = __b; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv16qi ((__neon_int8x16_t) __a.val, (__neon_int8x16_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vornv16qi ((__neon_int8x16_t) __ax.val, (__neon_int8x16_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vornq_u16(__a, __b) \
   ({ \
+     uint16x8_t __ax = __a; \
+     uint16x8_t __bx = __b; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv8hi ((__neon_int16x8_t) __a.val, (__neon_int16x8_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vornv8hi ((__neon_int16x8_t) __ax.val, (__neon_int16x8_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vornq_u32(__a, __b) \
   ({ \
+     uint32x4_t __ax = __a; \
+     uint32x4_t __bx = __b; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv4si ((__neon_int32x4_t) __a.val, (__neon_int32x4_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vornv4si ((__neon_int32x4_t) __ax.val, (__neon_int32x4_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 #define vornq_u64(__a, __b) \
   ({ \
+     uint64x2_t __ax = __a; \
+     uint64x2_t __bx = __b; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vornv2di ((__neon_int64x2_t) __a.val, (__neon_int64x2_t) __b.val, 0); \
+     __rv.__o = __builtin_neon_vornv2di ((__neon_int64x2_t) __ax.val, (__neon_int64x2_t) __bx.val, 0); \
      __rv.__i; \
    })
 
 
 #define vreinterpret_p8_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p8_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p8_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv2si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv2si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p8_s64(__a) \
   ({ \
+     int64x1_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv1di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv1di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p8_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv2sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv2sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p8_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p8_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p8_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv2si ((__neon_int32x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv2si ((__neon_int32x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p8_u64(__a) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv1di ((__neon_int64x1_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv1di ((__neon_int64x1_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p8_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { poly8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p8_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p8_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p8_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv4si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p8_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv2di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p8_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv4sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p8_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p8_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p8_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p8_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p8_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { poly8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p16_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p16_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p16_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv2si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv2si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p16_s64(__a) \
   ({ \
+     int64x1_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv1di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv1di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p16_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv2sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv2sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p16_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p16_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p16_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv2si ((__neon_int32x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv2si ((__neon_int32x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p16_u64(__a) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv1di ((__neon_int64x1_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv1di ((__neon_int64x1_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_p16_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { poly16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p16_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p16_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p16_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv4si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p16_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv2di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p16_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv4sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p16_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p16_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p16_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p16_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_p16_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { poly16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_f32_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2sfv8qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2sfv8qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_f32_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2sfv4hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2sfv4hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_f32_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2sfv2si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2sfv2si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_f32_s64(__a) \
   ({ \
+     int64x1_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2sfv1di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2sfv1di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_f32_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2sfv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2sfv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_f32_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2sfv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2sfv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_f32_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2sfv2si ((__neon_int32x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2sfv2si ((__neon_int32x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_f32_u64(__a) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2sfv1di ((__neon_int64x1_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2sfv1di ((__neon_int64x1_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_f32_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2sfv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2sfv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_f32_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { float32x2_t __i; __neon_float32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2sfv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2sfv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_f32_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4sfv16qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4sfv16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_f32_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4sfv8hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4sfv8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_f32_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4sfv4si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4sfv4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_f32_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4sfv2di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4sfv2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_f32_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4sfv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4sfv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_f32_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4sfv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4sfv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_f32_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4sfv4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4sfv4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_f32_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4sfv2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4sfv2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_f32_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4sfv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4sfv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_f32_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { float32x4_t __i; __neon_float32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4sfv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4sfv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s64_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div8qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div8qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s64_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div4hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div4hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s64_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div2si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div2si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s64_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div2sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div2sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s64_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s64_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s64_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div2si ((__neon_int32x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div2si ((__neon_int32x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s64_u64(__a) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div1di ((__neon_int64x1_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div1di ((__neon_int64x1_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s64_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s64_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { int64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s64_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div16qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s64_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div8hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s64_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div4si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s64_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div4sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s64_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s64_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s64_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s64_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s64_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s64_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { int64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u64_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div8qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div8qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u64_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div4hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div4hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u64_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div2si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div2si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u64_s64(__a) \
   ({ \
+     int64x1_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div1di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div1di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u64_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div2sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div2sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u64_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u64_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u64_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div2si ((__neon_int32x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div2si ((__neon_int32x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u64_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u64_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { uint64x1_t __i; __neon_int64x1_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv1div4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv1div4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u64_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div16qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u64_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div8hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u64_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div4si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u64_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div2di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u64_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div4sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u64_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u64_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u64_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u64_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u64_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { uint64x2_t __i; __neon_int64x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2div8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2div8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s8_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s8_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv2si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv2si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s8_s64(__a) \
   ({ \
+     int64x1_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv1di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv1di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s8_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv2sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv2sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s8_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s8_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s8_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv2si ((__neon_int32x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv2si ((__neon_int32x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s8_u64(__a) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv1di ((__neon_int64x1_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv1di ((__neon_int64x1_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s8_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s8_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { int8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s8_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s8_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv4si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s8_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv2di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s8_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv4sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s8_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s8_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s8_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s8_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s8_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s8_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { int8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s16_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s16_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv2si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv2si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s16_s64(__a) \
   ({ \
+     int64x1_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv1di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv1di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s16_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv2sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv2sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s16_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s16_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s16_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv2si ((__neon_int32x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv2si ((__neon_int32x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s16_u64(__a) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv1di ((__neon_int64x1_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv1di ((__neon_int64x1_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s16_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s16_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { int16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s16_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s16_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv4si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s16_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv2di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s16_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv4sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s16_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s16_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s16_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s16_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s16_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s16_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { int16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s32_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv8qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv8qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s32_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv4hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv4hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s32_s64(__a) \
   ({ \
+     int64x1_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv1di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv1di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s32_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv2sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv2sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s32_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s32_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s32_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv2si ((__neon_int32x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv2si ((__neon_int32x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s32_u64(__a) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv1di ((__neon_int64x1_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv1di ((__neon_int64x1_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s32_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_s32_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { int32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s32_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv16qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s32_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv8hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s32_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv2di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s32_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv4sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s32_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s32_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s32_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s32_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s32_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_s32_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { int32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u8_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u8_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u8_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv2si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv2si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u8_s64(__a) \
   ({ \
+     int64x1_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv1di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv1di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u8_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv2sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv2sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u8_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u8_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv2si ((__neon_int32x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv2si ((__neon_int32x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u8_u64(__a) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv1di ((__neon_int64x1_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv1di ((__neon_int64x1_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u8_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u8_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { uint8x8_t __i; __neon_int8x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8qiv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u8_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u8_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u8_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv4si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u8_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv2di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u8_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv4sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u8_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u8_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u8_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u8_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u8_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { uint8x16_t __i; __neon_int8x16_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv16qiv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u16_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u16_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u16_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv2si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv2si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u16_s64(__a) \
   ({ \
+     int64x1_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv1di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv1di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u16_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv2sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv2sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u16_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u16_u32(__a) \
   ({ \
+     uint32x2_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv2si ((__neon_int32x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv2si ((__neon_int32x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u16_u64(__a) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv1di ((__neon_int64x1_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv1di ((__neon_int64x1_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u16_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u16_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { uint16x4_t __i; __neon_int16x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4hiv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u16_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u16_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u16_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv4si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u16_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv2di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u16_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv4sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u16_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u16_u32(__a) \
   ({ \
+     uint32x4_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv4si ((__neon_int32x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv4si ((__neon_int32x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u16_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u16_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u16_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { uint16x8_t __i; __neon_int16x8_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv8hiv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u32_s8(__a) \
   ({ \
+     int8x8_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv8qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv8qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u32_s16(__a) \
   ({ \
+     int16x4_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv4hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv4hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u32_s32(__a) \
   ({ \
+     int32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv2si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv2si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u32_s64(__a) \
   ({ \
+     int64x1_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv1di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv1di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u32_f32(__a) \
   ({ \
+     float32x2_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv2sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv2sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u32_u8(__a) \
   ({ \
+     uint8x8_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u32_u16(__a) \
   ({ \
+     uint16x4_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u32_u64(__a) \
   ({ \
+     uint64x1_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv1di ((__neon_int64x1_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv1di ((__neon_int64x1_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u32_p8(__a) \
   ({ \
+     poly8x8_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv8qi ((__neon_int8x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv8qi ((__neon_int8x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpret_u32_p16(__a) \
   ({ \
+     poly16x4_t __ax = __a; \
      union { uint32x2_t __i; __neon_int32x2_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv2siv4hi ((__neon_int16x4_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv2siv4hi ((__neon_int16x4_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u32_s8(__a) \
   ({ \
+     int8x16_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv16qi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv16qi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u32_s16(__a) \
   ({ \
+     int16x8_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv8hi (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv8hi (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u32_s32(__a) \
   ({ \
+     int32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv4si (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv4si (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u32_s64(__a) \
   ({ \
+     int64x2_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv2di (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv2di (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u32_f32(__a) \
   ({ \
+     float32x4_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv4sf (__a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv4sf (__ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u32_u8(__a) \
   ({ \
+     uint8x16_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u32_u16(__a) \
   ({ \
+     uint16x8_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u32_u64(__a) \
   ({ \
+     uint64x2_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv2di ((__neon_int64x2_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv2di ((__neon_int64x2_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u32_p8(__a) \
   ({ \
+     poly8x16_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv16qi ((__neon_int8x16_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv16qi ((__neon_int8x16_t) __ax.val); \
      __rv.__i; \
    })
 
 #define vreinterpretq_u32_p16(__a) \
   ({ \
+     poly16x8_t __ax = __a; \
      union { uint32x4_t __i; __neon_int32x4_t __o; } __rv; \
-     __rv.__o = __builtin_neon_vreinterpretv4siv8hi ((__neon_int16x8_t) __a.val); \
+     __rv.__o = __builtin_neon_vreinterpretv4siv8hi ((__neon_int16x8_t) __ax.val); \
      __rv.__i; \
    })
 

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/neon-gen.ml
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/neon-gen.ml?rev=83387&r1=83386&r2=83387&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/neon-gen.ml (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/neon-gen.ml Tue Oct  6 11:45:06 2009
@@ -72,19 +72,6 @@
    amounts, etc.) can be checked for validity.  GCC can check them after
    inlining, but LLVM does inlining separately.
 
-   This is not ideal for error messages.  In the simple cases, llvm-gcc will
-   use the GCC builtin names instead of the user-visible ARM intrinsic names.
-   In cases where the macros use unions to convert argument types, the error
-   messages may not show any context information at all.
-
-   The problems with error messages could be avoided if the compiler
-   recognized the intrinsics directly, but that is not trivial.  The
-   user-visible intrinsics need to use the types defined by ARM that
-   distinguish the vector element signedness, whereas the LLVM intrinsics do
-   not care about signedness and also use different struct types (multiple
-   fields instead of arrays) that match the capabilities of tablegen-defined
-   intrinsics.
-
    Some macros translate to simple intrinsic calls and should not end with
    semicolons, but for others, which use GCC's statement-expressions to
    include unions that convert argument and/or return types, the semicolons
@@ -133,14 +120,15 @@
   | T_uint32x4 -> T_int32x4
   | T_uint64x1 -> T_int64x1
   | T_uint64x2 -> T_int64x2
-  (* LLVM LOCAL begin use standard type names *)
-  | T_uint8 -> T_int8
-  | T_uint16 -> T_int16
-  | T_uint32 -> T_int32
-  | T_uint64 -> T_int64
-  | T_poly8 -> T_int8
-  | T_poly16 -> T_int16
-  (* LLVM LOCAL end use standard type names *)
+  (* Cast to types defined by mode in arm.c, not random types pulled in from
+     the <stdint.h> header in use. This fixes incompatible pointer errors when
+     compiling with C++.  *)
+  | T_uint8 | T_int8 -> T_intQI
+  | T_uint16 | T_int16 -> T_intHI
+  | T_uint32 | T_int32 -> T_intSI
+  | T_uint64 | T_int64 -> T_intDI
+  | T_poly8 -> T_intQI
+  | T_poly16 -> T_intHI
   | T_arrayof (n, elt) -> T_arrayof (n, signed_ctype elt)
   | T_ptrto elt -> T_ptrto (signed_ctype elt)
   | T_const elt -> T_const (signed_ctype elt)
@@ -165,7 +153,11 @@
 let add_cast_with_prefix ctype cval stype_prefix =
   let stype = signed_ctype ctype in
   if ctype <> stype then
-    Printf.sprintf "(%s%s) %s" stype_prefix (string_of_vectype stype) cval
+    match stype with
+      T_ptrto elt ->
+        Printf.sprintf "__neon_ptr_cast(%s%s, %s)" stype_prefix (string_of_vectype stype) cval
+    | _ ->
+        Printf.sprintf "(%s%s) %s" stype_prefix (string_of_vectype stype) cval
   else
     cval
 
@@ -237,9 +229,17 @@
     | T_float32x2 | T_float32x4
     | T_poly8x8   | T_poly8x16
     | T_poly16x4  | T_poly16x8 ->
-        add_cast_with_prefix t (p ^ ".val") "__neon_"
+        let decl = Printf.sprintf "%s %s = %s"
+          (string_of_vectype t) (p ^ "x") p in
+        pdecls := decl :: !pdecls;
+        add_cast_with_prefix t (p ^ "x.val") "__neon_"
+    | T_immediate (lo, hi) -> p
+    | _ ->
+        let decl = Printf.sprintf "%s %s = %s"
+          (string_of_vectype t) (p ^ "x") p in
+        pdecls := decl :: !pdecls;
+        add_cast t (p ^ "x") in
     (* LLVM LOCAL end Extract vector operand from wrapper struct. *)
-    | _ -> add_cast t p in
   let plist = match ps with
     Arity0 _ -> []
   | Arity1 (_, t1) -> [ptype t1 "__a"]
@@ -353,50 +353,51 @@
    FIXME: It's probably better to use stdint.h names here.
 *)
 
-(* LLVM LOCAL begin Use stdint.h types for elements and add wrapper structs. *)
 let deftypes () =
-  (* Extra types not in <stdint.h>.  *)
-  Format.printf "typedef float float32_t;\n";
-  Format.printf "typedef signed char poly8_t;\n";
-  Format.printf "typedef signed short poly16_t;\n";
-  Format.print_newline ();
   let typeinfo = [
     (* Doubleword vector types.  *)
-    "int8_t ", "int", 8, 8;
-    "int16_t", "int", 16, 4;
-    "int32_t", "int", 32, 2;
-    "int64_t", "int", 64, 1;
-    "float32_t", "float", 32, 2;
-    "poly8_t", "poly", 8, 8;
-    "poly16_t", "poly", 16, 4;
-    "uint8_t", "uint", 8, 8;
-    "uint16_t", "uint", 16, 4;
-    "uint32_t", "uint", 32, 2;
-    "uint64_t", "uint", 64, 1;
+    "__builtin_neon_qi", "int", 8, 8;
+    "__builtin_neon_hi", "int", 16, 4;
+    "__builtin_neon_si", "int", 32, 2;
+    "__builtin_neon_di", "int", 64, 1;
+    "__builtin_neon_sf", "float", 32, 2;
+    "__builtin_neon_poly8", "poly", 8, 8;
+    "__builtin_neon_poly16", "poly", 16, 4;
+    "__builtin_neon_uqi", "uint", 8, 8;
+    "__builtin_neon_uhi", "uint", 16, 4;
+    "__builtin_neon_usi", "uint", 32, 2;
+    "__builtin_neon_udi", "uint", 64, 1;
     
     (* Quadword vector types.  *)
-    "int8_t", "int", 8, 16;
-    "int16_t", "int", 16, 8;
-    "int32_t", "int", 32, 4;
-    "int64_t", "int", 64, 2;
-    "float32_t", "float", 32, 4;
-    "poly8_t", "poly", 8, 16;
-    "poly16_t", "poly", 16, 8;
-    "uint8_t", "uint", 8, 16;
-    "uint16_t", "uint", 16, 8;
-    "uint32_t", "uint", 32, 4;
-    "uint64_t", "uint", 64, 2
+    "__builtin_neon_qi", "int", 8, 16;
+    "__builtin_neon_hi", "int", 16, 8;
+    "__builtin_neon_si", "int", 32, 4;
+    "__builtin_neon_di", "int", 64, 2;
+    "__builtin_neon_sf", "float", 32, 4;
+    "__builtin_neon_poly8", "poly", 8, 16;
+    "__builtin_neon_poly16", "poly", 16, 8;
+    "__builtin_neon_uqi", "uint", 8, 16;
+    "__builtin_neon_uhi", "uint", 16, 8;
+    "__builtin_neon_usi", "uint", 32, 4;
+    "__builtin_neon_udi", "uint", 64, 2
   ] in
   List.iter
     (fun (cbase, abase, esize, enum) ->
       let attr =
         match enum with
         (* LLVM LOCAL no special case for enum == 1 so int64x1_t is a vector *)
-          _ -> Printf.sprintf " \t__attribute__ ((__vector_size__ (%d)))"
+          _ -> Printf.sprintf "\t__attribute__ ((__vector_size__ (%d)))"
                               (esize * enum / 8) in
+      (* LLVM LOCAL Add "__neon_" prefix. *)
       Format.printf "typedef %s __neon_%s%dx%d_t%s;@\n" cbase abase esize enum attr)
     typeinfo;
   Format.print_newline ();
+  (* Extra types not in <stdint.h>.  *)
+  Format.printf "typedef __builtin_neon_sf float32_t;\n";
+  Format.printf "typedef __builtin_neon_poly8 poly8_t;\n";
+  Format.printf "typedef __builtin_neon_poly16 poly16_t;\n"
+(* LLVM LOCAL begin Define containerized vector types. *)
+  ;
   List.iter
     (fun (cbase, abase, esize, enum) ->
       let typename =
@@ -411,7 +412,7 @@
       Format.printf " %s;" typename;
       end_function sfmt)
     typeinfo
-(* LLVM LOCAL end Use stdint.h types for elements and add wrapper structs. *)
+(* LLVM LOCAL end Define containerized vector types. *)
 
 (* Output structs containing arrays, for load & store instructions etc.  *)
 
@@ -491,6 +492,11 @@
 "";
 "#ifdef __cplusplus";
 "extern \"C\" {";
+(* LLVM LOCAL begin Use reinterpret_cast for pointers in C++ *)
+"#define __neon_ptr_cast(ty, ptr) reinterpret_cast<ty>(ptr)";
+"#else";
+"#define __neon_ptr_cast(ty, ptr) (ty)(ptr)";
+(* LLVM LOCAL end Use reinterpret_cast for pointers in C++ *)
 "#endif";
 "";
 "#include <stdint.h>";





More information about the llvm-commits mailing list