diff mbox series

[v2,4/4] aarch64: Move vreinterpret definitions into the compiler

Message ID Ys7Lp1FNxiHyM6m7@e124511.cambridge.arm.com
State New
Headers show
Series [v2,1/4] aarch64: Add V1DI mode | expand

Commit Message

Andrew Carlotti July 13, 2022, 1:41 p.m. UTC
This removes a significant number of intrinsic definitions from the arm_neon.h
header file, and reduces the amount of code duplication. The new macros and
data structures are intended to also facilitate moving other intrinsic
definitions out of the header file in future.

There is a a slight change in the behaviour of the bf16 vreinterpret intrinsics
when compiling without bf16 support. Expressions like:

b = vreinterpretq_s32_bf16(vreinterpretq_bf16_s64(a))

are now compiled successfully, instead of causing a 'target specific option
mismatch' during inlining.

gcc/ChangeLog:

	* config/aarch64/aarch64-builtins.cc
	(MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
	(MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
	(MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
	(MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
	(MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
	(MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
	(MODE_q_p128): Define macro to map to corresponding mode name.
	(QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
	(QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
	(QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
	corresponding qualifier name.
	(LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
	(SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
	functions for the above mappings
	(VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
	(VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
	(VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
	(AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
	for all vreinterpret intrinsics
	(enum aarch64_builtins): Add vreinterpret function codes
	(aarch64_init_simd_intrinsics): New
	(handle_arm_neon_h): Improved comment.
	(aarch64_general_fold_builtin): Fold vreinterpret calls
	* config/aarch64/arm_neon.h
	(vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
	(vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
	(vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
	(vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
	(vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
	(vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
	(vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
	(vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
	(vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
	(vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
	(vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
	(vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
	(vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
	(vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
	(vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
	(vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
	(vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
	(vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
	(vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
	(vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
	(vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
	(vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
	(vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
	(vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
	(vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
	(vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
	(vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
	(vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
	(vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
	(vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
	(vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
	(vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
	(vreinterpret_f16_s16): (vreinterpret_f16_s32): (vreinterpret_f16_s64):
	(vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
	(vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
	(vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
	(vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
	(vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
	(vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
	(vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
	(vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
	(vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
	(vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
	(vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
	(vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
	(vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
	(vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
	(vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
	(vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
	(vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
	(vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
	(vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
	(vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
	(vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
	(vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
	(vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
	(vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
	(vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
	(vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
	(vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
	(vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
	(vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
	(vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
	(vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
	(vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
	(vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
	(vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
	(vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
	(vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
	(vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
	(vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
	(vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
	(vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
	(vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
	(vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
	(vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
	(vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
	(vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
	(vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
	(vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
	(vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
	(vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
	(vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
	(vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
	(vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
	(vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
	(vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
	(vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
	(vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
	(vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
	(vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
	(vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
	(vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
	(vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
	(vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
	(vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
	(vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
	(vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
	(vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
	(vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
	(vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
	(vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
	(vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
	(vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
	(vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
	(vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
	(vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
	(vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
	(vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
	(vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
	(vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
	(vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
	(vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
	(vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
	(vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
	(vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
	(vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
	(vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
	(vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
	(vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
	(vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
	(vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
	(vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
	(vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
	(vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
	(vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
	(vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
	(vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
	(vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
	(vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
	(vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
	(vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
	(vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
	(vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
	(vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
	(vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
	(vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
	(vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
	(vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
	(vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
	(vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
	(vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
	(vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
	(vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
	(vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
	(vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
	(vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
	(vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
	(vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
	(vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
	(vreinterpretq_p128_bf16): Delete

---

Comments

Richard Sandiford July 13, 2022, 4:44 p.m. UTC | #1
Andrew Carlotti <andrew.carlotti@arm.com> writes:
> This removes a significant number of intrinsic definitions from the arm_neon.h
> header file, and reduces the amount of code duplication. The new macros and
> data structures are intended to also facilitate moving other intrinsic
> definitions out of the header file in future.
>
> There is a a slight change in the behaviour of the bf16 vreinterpret intrinsics
> when compiling without bf16 support. Expressions like:
>
> b = vreinterpretq_s32_bf16(vreinterpretq_bf16_s64(a))
>
> are now compiled successfully, instead of causing a 'target specific option
> mismatch' during inlining.
>
> gcc/ChangeLog:
>
> 	* config/aarch64/aarch64-builtins.cc
> 	(MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
> 	(MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
> 	(MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
> 	(MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
> 	(MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
> 	(MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
> 	(MODE_q_p128): Define macro to map to corresponding mode name.
> 	(QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
> 	(QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
> 	(QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
> 	corresponding qualifier name.
> 	(LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
> 	(SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
> 	functions for the above mappings
> 	(VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
> 	(VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
> 	(VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
> 	(AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
> 	for all vreinterpret intrinsics
> 	(enum aarch64_builtins): Add vreinterpret function codes
> 	(aarch64_init_simd_intrinsics): New
> 	(handle_arm_neon_h): Improved comment.
> 	(aarch64_general_fold_builtin): Fold vreinterpret calls
> 	* config/aarch64/arm_neon.h
> 	(vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
> 	(vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
> 	(vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
> 	(vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
> 	(vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
> 	(vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
> 	(vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
> 	(vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
> 	(vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
> 	(vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
> 	(vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
> 	(vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
> 	(vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
> 	(vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
> 	(vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
> 	(vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
> 	(vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
> 	(vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
> 	(vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
> 	(vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
> 	(vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
> 	(vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
> 	(vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
> 	(vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
> 	(vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
> 	(vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
> 	(vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
> 	(vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
> 	(vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
> 	(vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
> 	(vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
> 	(vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
> 	(vreinterpret_f16_s16): (vreinterpret_f16_s32): (vreinterpret_f16_s64):
> 	(vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
> 	(vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
> 	(vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
> 	(vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
> 	(vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
> 	(vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
> 	(vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
> 	(vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
> 	(vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
> 	(vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
> 	(vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
> 	(vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
> 	(vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
> 	(vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
> 	(vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
> 	(vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
> 	(vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
> 	(vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
> 	(vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
> 	(vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
> 	(vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
> 	(vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
> 	(vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
> 	(vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
> 	(vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
> 	(vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
> 	(vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
> 	(vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
> 	(vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
> 	(vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
> 	(vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
> 	(vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
> 	(vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
> 	(vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
> 	(vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
> 	(vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
> 	(vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
> 	(vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
> 	(vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
> 	(vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
> 	(vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
> 	(vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
> 	(vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
> 	(vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
> 	(vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
> 	(vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
> 	(vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
> 	(vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
> 	(vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
> 	(vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
> 	(vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
> 	(vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
> 	(vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
> 	(vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
> 	(vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
> 	(vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
> 	(vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
> 	(vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
> 	(vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
> 	(vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
> 	(vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
> 	(vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
> 	(vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
> 	(vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
> 	(vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
> 	(vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
> 	(vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
> 	(vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
> 	(vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
> 	(vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
> 	(vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
> 	(vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
> 	(vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
> 	(vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
> 	(vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
> 	(vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
> 	(vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
> 	(vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
> 	(vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
> 	(vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
> 	(vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
> 	(vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
> 	(vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
> 	(vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
> 	(vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
> 	(vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
> 	(vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
> 	(vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
> 	(vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
> 	(vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
> 	(vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
> 	(vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
> 	(vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
> 	(vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
> 	(vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
> 	(vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
> 	(vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
> 	(vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
> 	(vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
> 	(vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
> 	(vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
> 	(vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
> 	(vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
> 	(vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
> 	(vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
> 	(vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
> 	(vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
> 	(vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
> 	(vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
> 	(vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
> 	(vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
> 	(vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
> 	(vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
> 	(vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
> 	(vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
> 	(vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
> 	(vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
> 	(vreinterpretq_p128_bf16): Delete

Sorry that you had to write this.

> […]
> @@ -1148,6 +1332,44 @@ aarch64_init_fcmla_laneq_builtins (void)
>      }
>  }
>  
> +void
> +aarch64_init_simd_intrinsics (void)
> +{
> +  unsigned int i = 0;
> +
> +  for (i = 0; i < ARRAY_SIZE (aarch64_simd_intrinsic_data); ++i)
> +    {
> +      auto d = &aarch64_simd_intrinsic_data[i];

Very minor, but it's now OK to use:

  for (auto d : aarch64_simd_intrinsic_data)

if you prefer.  (This style isn't widely used in GCC yet because the base
language was changed to C++11 only “recently”.)

> +
> +      if (d->skip)
> +	continue;
> +
> +      tree return_type = void_type_node;
> +      tree args = void_list_node;
> +
> +      for (int op_num = d->op_count - 1; op_num >= 0; op_num--)
> +	{
> +	  machine_mode op_mode = d->op_modes[op_num];
> +	  enum aarch64_type_qualifiers qualifiers = d->qualifiers[op_num];
> +
> +	  tree eltype = aarch64_build_simd_builtin_type (op_mode, qualifiers);
> +
> +	  if (op_num == 0)
> +	    return_type = eltype;
> +	  else
> +	    args = tree_cons (NULL_TREE, eltype, args);
> +	}
> +
> +      tree ftype = build_function_type (return_type, args);
> +      tree attrs = aarch64_get_attributes (FLAG_AUTO_FP, d->op_modes[0]);

Looks like FLAG_AUTO_FP should be d->flags instead.

OK for trunk with that change and with whatever changes are needed for
the final version of patch 3/4.

Thanks,
Richard

> +      unsigned int code
> +	      = (d->fcode << AARCH64_BUILTIN_SHIFT | AARCH64_BUILTIN_GENERAL);
> +      tree fndecl = simulate_builtin_function_decl (input_location, d->name,
> +						    ftype, code, NULL, attrs);
> +      aarch64_builtin_decls[d->fcode] = fndecl;
> +    }
> +}
> +
>  void
>  aarch64_init_simd_builtin_functions (bool called_from_pragma)
>  {
> @@ -1347,7 +1569,10 @@ aarch64_simd_switcher::~aarch64_simd_switcher ()
>    aarch64_isa_flags = m_old_isa_flags;
>  }
>  
> -/* Implement #pragma GCC aarch64 "arm_neon.h".  */
> +/* Implement #pragma GCC aarch64 "arm_neon.h".
> +
> +   The types and functions defined here need to be available internally
> +   during LTO as well.  */
>  void
>  handle_arm_neon_h (void)
>  {
> @@ -1360,6 +1585,7 @@ handle_arm_neon_h (void)
>  	register_tuple_type (count, i);
>  
>    aarch64_init_simd_builtin_functions (true);
> +  aarch64_init_simd_intrinsics ();
>  }
>  
>  void
> @@ -2710,6 +2936,11 @@ aarch64_fold_builtin_lane_check (tree arg0, tree arg1, tree arg2)
>  #define VAR1(T, N, MAP, FLAG, A) \
>    case AARCH64_SIMD_BUILTIN_##T##_##N##A:
>  
> +#undef VREINTERPRET_BUILTIN
> +#define VREINTERPRET_BUILTIN(A, B, L) \
> +  case AARCH64_SIMD_BUILTIN_VREINTERPRET##L##_##A##_##B:
> +
> +
>  /* Try to fold a call to the built-in function with subcode FCODE.  The
>     function is passed the N_ARGS arguments in ARGS and it returns a value
>     of type TYPE.  Return the new expression on success and NULL_TREE on
> @@ -2726,6 +2957,8 @@ aarch64_general_fold_builtin (unsigned int fcode, tree type,
>        VAR1 (UNOP, floatv4si, 2, ALL, v4sf)
>        VAR1 (UNOP, floatv2di, 2, ALL, v2df)
>  	return fold_build1 (FLOAT_EXPR, type, args[0]);
> +      AARCH64_SIMD_VREINTERPRET_BUILTINS
> +	return fold_build1 (VIEW_CONVERT_EXPR, type, args[0]);
>        case AARCH64_SIMD_BUILTIN_LANE_CHECK:
>  	gcc_assert (n_args == 3);
>  	if (aarch64_fold_builtin_lane_check (args[0], args[1], args[2]))
> diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h
> index 85d03c58d2a98c1b8b84f007a82bb976601b424e..cf6af728ca99dae1cb6ab647466cfec32f7e913e 100644
> --- a/gcc/config/aarch64/arm_neon.h
> +++ b/gcc/config/aarch64/arm_neon.h
> @@ -2827,2753 +2827,6 @@ vgetq_lane_u64 (uint64x2_t __a, const int __b)
>    return __aarch64_vget_lane_any (__a, __b);
>  }
>  
> -/* vreinterpret  */
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_f16 (float16x4_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_f64 (float64x1_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_s8 (int8x8_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_s16 (int16x4_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_s32 (int32x2_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_s64 (int64x1_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_f32 (float32x2_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_u8 (uint8x8_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_u16 (uint16x4_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_u32 (uint32x2_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_u64 (uint64x1_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_p16 (poly16x4_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_p64 (poly64x1_t __a)
> -{
> -  return (poly8x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_f64 (float64x2_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_s8 (int8x16_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_s16 (int16x8_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_s32 (int32x4_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_s64 (int64x2_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_f16 (float16x8_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_f32 (float32x4_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_u8 (uint8x16_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_u16 (uint16x8_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_u32 (uint32x4_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_u64 (uint64x2_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_p16 (poly16x8_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_p64 (poly64x2_t __a)
> -{
> -  return (poly8x16_t) __a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_p128 (poly128_t __a)
> -{
> -  return (poly8x16_t)__a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_f16 (float16x4_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_f64 (float64x1_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_s8 (int8x8_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_s16 (int16x4_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_s32 (int32x2_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_s64 (int64x1_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_f32 (float32x2_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_u8 (uint8x8_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_u16 (uint16x4_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_u32 (uint32x2_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_u64 (uint64x1_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_p8 (poly8x8_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_p64 (poly64x1_t __a)
> -{
> -  return (poly16x4_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_f64 (float64x2_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_s8 (int8x16_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_s16 (int16x8_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_s32 (int32x4_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_s64 (int64x2_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_f16 (float16x8_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_f32 (float32x4_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_u8 (uint8x16_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_u16 (uint16x8_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_u32 (uint32x4_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_u64 (uint64x2_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_p8 (poly8x16_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_p64 (poly64x2_t __a)
> -{
> -  return (poly16x8_t) __a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_p128 (poly128_t __a)
> -{
> -  return (poly16x8_t)__a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_f16 (float16x4_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_f64 (float64x1_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_s8 (int8x8_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_s16 (int16x4_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_s32 (int32x2_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_s64 (int64x1_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_f32 (float32x2_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_u8 (uint8x8_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_u16 (uint16x4_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_u32 (uint32x2_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_u64 (uint64x1_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_p8 (poly8x8_t __a)
> -{
> -  return (poly64x1_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_p16 (poly16x4_t __a)
> -{
> -  return (poly64x1_t)__a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_f64 (float64x2_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_s8 (int8x16_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_s16 (int16x8_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_s32 (int32x4_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_s64 (int64x2_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_f16 (float16x8_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_f32 (float32x4_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_p128 (poly128_t __a)
> -{
> -  return (poly64x2_t)__a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_u8 (uint8x16_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_u16 (uint16x8_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_p16 (poly16x8_t __a)
> -{
> -  return (poly64x2_t)__a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_u32 (uint32x4_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_u64 (uint64x2_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_p8 (poly8x16_t __a)
> -{
> -  return (poly64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_p8 (poly8x16_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_p16 (poly16x8_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_f16 (float16x8_t __a)
> -{
> -  return (poly128_t) __a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_f32 (float32x4_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_p64 (poly64x2_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_s64 (int64x2_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_u64 (uint64x2_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_s8 (int8x16_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_s16 (int16x8_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_s32 (int32x4_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_u8 (uint8x16_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_u16 (uint16x8_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_u32 (uint32x4_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_f64 (float64x1_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_s8 (int8x8_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_s16 (int16x4_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_s32 (int32x2_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_s64 (int64x1_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_f32 (float32x2_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_u8 (uint8x8_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_u16 (uint16x4_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_u32 (uint32x2_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_u64 (uint64x1_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_p8 (poly8x8_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_p16 (poly16x4_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_p64 (poly64x1_t __a)
> -{
> -  return (float16x4_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_f64 (float64x2_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_s8 (int8x16_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_s16 (int16x8_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_s32 (int32x4_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_s64 (int64x2_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_f32 (float32x4_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_u8 (uint8x16_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_u16 (uint16x8_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_u32 (uint32x4_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_u64 (uint64x2_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_p8 (poly8x16_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_p128 (poly128_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_p16 (poly16x8_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_p64 (poly64x2_t __a)
> -{
> -  return (float16x8_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_f16 (float16x4_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_f64 (float64x1_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_s8 (int8x8_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_s16 (int16x4_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_s32 (int32x2_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_s64 (int64x1_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_u8 (uint8x8_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_u16 (uint16x4_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_u32 (uint32x2_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_u64 (uint64x1_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_p8 (poly8x8_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_p16 (poly16x4_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_p64 (poly64x1_t __a)
> -{
> -  return (float32x2_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_f16 (float16x8_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_f64 (float64x2_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_s8 (int8x16_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_s16 (int16x8_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_s32 (int32x4_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_s64 (int64x2_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_u8 (uint8x16_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_u16 (uint16x8_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_u32 (uint32x4_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_u64 (uint64x2_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_p8 (poly8x16_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_p16 (poly16x8_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_p64 (poly64x2_t __a)
> -{
> -  return (float32x4_t) __a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_p128 (poly128_t __a)
> -{
> -  return (float32x4_t)__a;
> -}
> -
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_f16 (float16x4_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_f32 (float32x2_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_p8 (poly8x8_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_p16 (poly16x4_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_p64 (poly64x1_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_s8 (int8x8_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_s16 (int16x4_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_s32 (int32x2_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_s64 (int64x1_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_u8 (uint8x8_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_u16 (uint16x4_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_u32 (uint32x2_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_u64 (uint64x1_t __a)
> -{
> -  return (float64x1_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_f16 (float16x8_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_f32 (float32x4_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_p8 (poly8x16_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_p16 (poly16x8_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_p64 (poly64x2_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_s8 (int8x16_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_s16 (int16x8_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_s32 (int32x4_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_s64 (int64x2_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_u8 (uint8x16_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_u16 (uint16x8_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_u32 (uint32x4_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_u64 (uint64x2_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_f16 (float16x4_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_f64 (float64x1_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_s8 (int8x8_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_s16 (int16x4_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_s32 (int32x2_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_f32 (float32x2_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_u8 (uint8x8_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_u16 (uint16x4_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_u32 (uint32x2_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_u64 (uint64x1_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_p8 (poly8x8_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_p16 (poly16x4_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_p64 (poly64x1_t __a)
> -{
> -  return (int64x1_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_f64 (float64x2_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_s8 (int8x16_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_s16 (int16x8_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_s32 (int32x4_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_f16 (float16x8_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_f32 (float32x4_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_u8 (uint8x16_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_u16 (uint16x8_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_u32 (uint32x4_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_u64 (uint64x2_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_p8 (poly8x16_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_p16 (poly16x8_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_p64 (poly64x2_t __a)
> -{
> -  return (int64x2_t) __a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_p128 (poly128_t __a)
> -{
> -  return (int64x2_t)__a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_f16 (float16x4_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_f64 (float64x1_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_s8 (int8x8_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_s16 (int16x4_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_s32 (int32x2_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_s64 (int64x1_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_f32 (float32x2_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_u8 (uint8x8_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_u16 (uint16x4_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_u32 (uint32x2_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_p8 (poly8x8_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_p16 (poly16x4_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_p64 (poly64x1_t __a)
> -{
> -  return (uint64x1_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_f64 (float64x2_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_s8 (int8x16_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_s16 (int16x8_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_s32 (int32x4_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_s64 (int64x2_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_f16 (float16x8_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_f32 (float32x4_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_u8 (uint8x16_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_u16 (uint16x8_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_u32 (uint32x4_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_p8 (poly8x16_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_p16 (poly16x8_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_p64 (poly64x2_t __a)
> -{
> -  return (uint64x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_p128 (poly128_t __a)
> -{
> -  return (uint64x2_t)__a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_f16 (float16x4_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_f64 (float64x1_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_s16 (int16x4_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_s32 (int32x2_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_s64 (int64x1_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_f32 (float32x2_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_u8 (uint8x8_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_u16 (uint16x4_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_u32 (uint32x2_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_u64 (uint64x1_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_p8 (poly8x8_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_p16 (poly16x4_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_p64 (poly64x1_t __a)
> -{
> -  return (int8x8_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_f64 (float64x2_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_s16 (int16x8_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_s32 (int32x4_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_s64 (int64x2_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_f16 (float16x8_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_f32 (float32x4_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_u8 (uint8x16_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_u16 (uint16x8_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_u32 (uint32x4_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_u64 (uint64x2_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_p8 (poly8x16_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_p16 (poly16x8_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_p64 (poly64x2_t __a)
> -{
> -  return (int8x16_t) __a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_p128 (poly128_t __a)
> -{
> -  return (int8x16_t)__a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_f16 (float16x4_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_f64 (float64x1_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_s8 (int8x8_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_s32 (int32x2_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_s64 (int64x1_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_f32 (float32x2_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_u8 (uint8x8_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_u16 (uint16x4_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_u32 (uint32x2_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_u64 (uint64x1_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_p8 (poly8x8_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_p16 (poly16x4_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_p64 (poly64x1_t __a)
> -{
> -  return (int16x4_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_f64 (float64x2_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_s8 (int8x16_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_s32 (int32x4_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_s64 (int64x2_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_f16 (float16x8_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_f32 (float32x4_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_u8 (uint8x16_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_u16 (uint16x8_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_u32 (uint32x4_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_u64 (uint64x2_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_p8 (poly8x16_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_p16 (poly16x8_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_p64 (poly64x2_t __a)
> -{
> -  return (int16x8_t) __a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_p128 (poly128_t __a)
> -{
> -  return (int16x8_t)__a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_f16 (float16x4_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_f64 (float64x1_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_s8 (int8x8_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_s16 (int16x4_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_s64 (int64x1_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_f32 (float32x2_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_u8 (uint8x8_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_u16 (uint16x4_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_u32 (uint32x2_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_u64 (uint64x1_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_p8 (poly8x8_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_p16 (poly16x4_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_p64 (poly64x1_t __a)
> -{
> -  return (int32x2_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_f64 (float64x2_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_s8 (int8x16_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_s16 (int16x8_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_s64 (int64x2_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_f16 (float16x8_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_f32 (float32x4_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_u8 (uint8x16_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_u16 (uint16x8_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_u32 (uint32x4_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_u64 (uint64x2_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_p8 (poly8x16_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_p16 (poly16x8_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_p64 (poly64x2_t __a)
> -{
> -  return (int32x4_t) __a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_p128 (poly128_t __a)
> -{
> -  return (int32x4_t)__a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_f16 (float16x4_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_f64 (float64x1_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_s8 (int8x8_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_s16 (int16x4_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_s32 (int32x2_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_s64 (int64x1_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_f32 (float32x2_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_u16 (uint16x4_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_u32 (uint32x2_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_u64 (uint64x1_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_p8 (poly8x8_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_p16 (poly16x4_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_p64 (poly64x1_t __a)
> -{
> -  return (uint8x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_f64 (float64x2_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_s8 (int8x16_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_s16 (int16x8_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_s32 (int32x4_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_s64 (int64x2_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_f16 (float16x8_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_f32 (float32x4_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_u16 (uint16x8_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_u32 (uint32x4_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_u64 (uint64x2_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_p8 (poly8x16_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_p16 (poly16x8_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_p64 (poly64x2_t __a)
> -{
> -  return (uint8x16_t) __a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_p128 (poly128_t __a)
> -{
> -  return (uint8x16_t)__a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_f16 (float16x4_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_f64 (float64x1_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_s8 (int8x8_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_s16 (int16x4_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_s32 (int32x2_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_s64 (int64x1_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_f32 (float32x2_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_u8 (uint8x8_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_u32 (uint32x2_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_u64 (uint64x1_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_p8 (poly8x8_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_p16 (poly16x4_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_p64 (poly64x1_t __a)
> -{
> -  return (uint16x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_f64 (float64x2_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_s8 (int8x16_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_s16 (int16x8_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_s32 (int32x4_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_s64 (int64x2_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_f16 (float16x8_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_f32 (float32x4_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_u8 (uint8x16_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_u32 (uint32x4_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_u64 (uint64x2_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_p8 (poly8x16_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_p16 (poly16x8_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_p64 (poly64x2_t __a)
> -{
> -  return (uint16x8_t) __a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_p128 (poly128_t __a)
> -{
> -  return (uint16x8_t)__a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_f16 (float16x4_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_f64 (float64x1_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_s8 (int8x8_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_s16 (int16x4_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_s32 (int32x2_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_s64 (int64x1_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_f32 (float32x2_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_u8 (uint8x8_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_u16 (uint16x4_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_u64 (uint64x1_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_p8 (poly8x8_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_p16 (poly16x4_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_p64 (poly64x1_t __a)
> -{
> -  return (uint32x2_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_f64 (float64x2_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_s8 (int8x16_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_s16 (int16x8_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_s32 (int32x4_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_s64 (int64x2_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_f16 (float16x8_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_f32 (float32x4_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_u8 (uint8x16_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_u16 (uint16x8_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_u64 (uint64x2_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_p8 (poly8x16_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_p16 (poly16x8_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_p64 (poly64x2_t __a)
> -{
> -  return (uint32x4_t) __a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_p128 (poly128_t __a)
> -{
> -  return (uint32x4_t)__a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_p128 (poly128_t __a)
> -{
> -  return (float64x2_t) __a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_f64 (float64x2_t __a)
> -{
> -  return (poly128_t) __a;
> -}
> -
>  /* vset_lane  */
>  
>  __extension__ extern __inline float16x4_t
> @@ -30988,414 +28241,6 @@ vst4q_bf16 (bfloat16_t * __a, bfloat16x8x4_t __val)
>    __builtin_aarch64_st4v8bf ((__builtin_aarch64_simd_bf *) __a, __val);
>  }
>  
> -/* vreinterpret */
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_u8 (uint8x8_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_u16 (uint16x4_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_u32 (uint32x2_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_u64 (uint64x1_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_s8 (int8x8_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_s16 (int16x4_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_s32 (int32x2_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_s64 (int64x1_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_p8 (poly8x8_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_p16 (poly16x4_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_p64 (poly64x1_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_f16 (float16x4_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_f32 (float32x2_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_bf16_f64 (float64x1_t __a)
> -{
> -  return (bfloat16x4_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_u8 (uint8x16_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_u16 (uint16x8_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_u32 (uint32x4_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_u64 (uint64x2_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_s8 (int8x16_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_s16 (int16x8_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_s32 (int32x4_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_s64 (int64x2_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_p8 (poly8x16_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_p16 (poly16x8_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_p64 (poly64x2_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_p128 (poly128_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_f16 (float16x8_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_f32 (float32x4_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline bfloat16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_bf16_f64 (float64x2_t __a)
> -{
> -  return (bfloat16x8_t)__a;
> -}
> -
> -__extension__ extern __inline int8x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s8_bf16 (bfloat16x4_t __a)
> -{
> -  return (int8x8_t)__a;
> -}
> -
> -__extension__ extern __inline int16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s16_bf16 (bfloat16x4_t __a)
> -{
> -  return (int16x4_t)__a;
> -}
> -
> -__extension__ extern __inline int32x2_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s32_bf16 (bfloat16x4_t __a)
> -{
> -  return (int32x2_t)__a;
> -}
> -
> -__extension__ extern __inline int64x1_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_s64_bf16 (bfloat16x4_t __a)
> -{
> -  return (int64x1_t)__a;
> -}
> -
> -__extension__ extern __inline uint8x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u8_bf16 (bfloat16x4_t __a)
> -{
> -  return (uint8x8_t)__a;
> -}
> -
> -__extension__ extern __inline uint16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u16_bf16 (bfloat16x4_t __a)
> -{
> -  return (uint16x4_t)__a;
> -}
> -
> -__extension__ extern __inline uint32x2_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u32_bf16 (bfloat16x4_t __a)
> -{
> -  return (uint32x2_t)__a;
> -}
> -
> -__extension__ extern __inline uint64x1_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_u64_bf16 (bfloat16x4_t __a)
> -{
> -  return (uint64x1_t)__a;
> -}
> -
> -__extension__ extern __inline float16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f16_bf16 (bfloat16x4_t __a)
> -{
> -  return (float16x4_t)__a;
> -}
> -
> -__extension__ extern __inline float32x2_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f32_bf16 (bfloat16x4_t __a)
> -{
> -  return (float32x2_t)__a;
> -}
> -
> -__extension__ extern __inline float64x1_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_f64_bf16 (bfloat16x4_t __a)
> -{
> -  return (float64x1_t)__a;
> -}
> -
> -__extension__ extern __inline poly8x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p8_bf16 (bfloat16x4_t __a)
> -{
> -  return (poly8x8_t)__a;
> -}
> -
> -__extension__ extern __inline poly16x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p16_bf16 (bfloat16x4_t __a)
> -{
> -  return (poly16x4_t)__a;
> -}
> -
> -__extension__ extern __inline poly64x1_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpret_p64_bf16 (bfloat16x4_t __a)
> -{
> -  return (poly64x1_t)__a;
> -}
> -
> -__extension__ extern __inline int8x16_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s8_bf16 (bfloat16x8_t __a)
> -{
> -  return (int8x16_t)__a;
> -}
> -
> -__extension__ extern __inline int16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s16_bf16 (bfloat16x8_t __a)
> -{
> -  return (int16x8_t)__a;
> -}
> -
> -__extension__ extern __inline int32x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s32_bf16 (bfloat16x8_t __a)
> -{
> -  return (int32x4_t)__a;
> -}
> -
> -__extension__ extern __inline int64x2_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_s64_bf16 (bfloat16x8_t __a)
> -{
> -  return (int64x2_t)__a;
> -}
> -
> -__extension__ extern __inline uint8x16_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u8_bf16 (bfloat16x8_t __a)
> -{
> -  return (uint8x16_t)__a;
> -}
> -
> -__extension__ extern __inline uint16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u16_bf16 (bfloat16x8_t __a)
> -{
> -  return (uint16x8_t)__a;
> -}
> -
> -__extension__ extern __inline uint32x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u32_bf16 (bfloat16x8_t __a)
> -{
> -  return (uint32x4_t)__a;
> -}
> -
> -__extension__ extern __inline uint64x2_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_u64_bf16 (bfloat16x8_t __a)
> -{
> -  return (uint64x2_t)__a;
> -}
> -
> -__extension__ extern __inline float16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f16_bf16 (bfloat16x8_t __a)
> -{
> -  return (float16x8_t)__a;
> -}
> -
> -__extension__ extern __inline float32x4_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f32_bf16 (bfloat16x8_t __a)
> -{
> -  return (float32x4_t)__a;
> -}
> -
> -__extension__ extern __inline float64x2_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_f64_bf16 (bfloat16x8_t __a)
> -{
> -  return (float64x2_t)__a;
> -}
> -
> -__extension__ extern __inline poly8x16_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p8_bf16 (bfloat16x8_t __a)
> -{
> -  return (poly8x16_t)__a;
> -}
> -
> -__extension__ extern __inline poly16x8_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p16_bf16 (bfloat16x8_t __a)
> -{
> -  return (poly16x8_t)__a;
> -}
> -
> -__extension__ extern __inline poly64x2_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p64_bf16 (bfloat16x8_t __a)
> -{
> -  return (poly64x2_t)__a;
> -}
> -
> -__extension__ extern __inline poly128_t
> -__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
> -vreinterpretq_p128_bf16 (bfloat16x8_t __a)
> -{
> -  return (poly128_t)__a;
> -}
> -
>  __extension__ extern __inline float32x2_t
>  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
>  vbfdot_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b)
diff mbox series

Patch

diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
index 6b413a36a09c7a4ac41b0fe7c414a3247580f222..b3ac68d1267cafcd7613f1866f61693b65d26fd2 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -127,6 +127,63 @@ 
 #define v4x2df_UP  E_V4x2DFmode
 #define UP(X) X##_UP
 
+#define MODE_d_bf16 E_V4BFmode
+#define MODE_d_f16 E_V4HFmode
+#define MODE_d_f32 E_V2SFmode
+#define MODE_d_f64 E_V1DFmode
+#define MODE_d_s8 E_V8QImode
+#define MODE_d_s16 E_V4HImode
+#define MODE_d_s32 E_V2SImode
+#define MODE_d_s64 E_V1DImode
+#define MODE_d_u8 E_V8QImode
+#define MODE_d_u16 E_V4HImode
+#define MODE_d_u32 E_V2SImode
+#define MODE_d_u64 E_V1DImode
+#define MODE_d_p8 E_V8QImode
+#define MODE_d_p16 E_V4HImode
+#define MODE_d_p64 E_V1DImode
+#define MODE_q_bf16 E_V8BFmode
+#define MODE_q_f16 E_V8HFmode
+#define MODE_q_f32 E_V4SFmode
+#define MODE_q_f64 E_V2DFmode
+#define MODE_q_s8 E_V16QImode
+#define MODE_q_s16 E_V8HImode
+#define MODE_q_s32 E_V4SImode
+#define MODE_q_s64 E_V2DImode
+#define MODE_q_u8 E_V16QImode
+#define MODE_q_u16 E_V8HImode
+#define MODE_q_u32 E_V4SImode
+#define MODE_q_u64 E_V2DImode
+#define MODE_q_p8 E_V16QImode
+#define MODE_q_p16 E_V8HImode
+#define MODE_q_p64 E_V2DImode
+#define MODE_q_p128 E_TImode
+
+#define QUAL_bf16 qualifier_none
+#define QUAL_f16 qualifier_none
+#define QUAL_f32 qualifier_none
+#define QUAL_f64 qualifier_none
+#define QUAL_s8 qualifier_none
+#define QUAL_s16 qualifier_none
+#define QUAL_s32 qualifier_none
+#define QUAL_s64 qualifier_none
+#define QUAL_u8 qualifier_unsigned
+#define QUAL_u16 qualifier_unsigned
+#define QUAL_u32 qualifier_unsigned
+#define QUAL_u64 qualifier_unsigned
+#define QUAL_p8 qualifier_poly
+#define QUAL_p16 qualifier_poly
+#define QUAL_p64 qualifier_poly
+#define QUAL_p128 qualifier_poly
+
+#define LENGTH_d ""
+#define LENGTH_q "q"
+
+#define SIMD_INTR_MODE(suffix, length) MODE_##length##_##suffix
+#define SIMD_INTR_QUAL(suffix) QUAL_##suffix
+#define SIMD_INTR_LENGTH_CHAR(length) LENGTH_##length
+
+
 #define SIMD_MAX_BUILTIN_ARGS 5
 
 enum aarch64_type_qualifiers
@@ -522,6 +579,99 @@  static aarch64_simd_builtin_datum aarch64_simd_builtin_data[] = {
   FCMLA_LANEQ_BUILTIN (180, v4hf, fcmla_laneq, V4HF, true) \
   FCMLA_LANEQ_BUILTIN (270, v4hf, fcmla_laneq, V4HF, true) \
 
+
+/* vreinterpret intrinsics are defined for any pair of element types.
+   {     _bf16           }   {     _bf16           }
+   {      _f16 _f32 _f64 }   {      _f16 _f32 _f64 }
+   { _s8  _s16 _s32 _s64 } x { _s8  _s16 _s32 _s64 }
+   { _u8  _u16 _u32 _u64 }   { _u8  _u16 _u32 _u64 }
+   { _p8  _p16      _p64 }   { _p8  _p16      _p64 }.  */
+#define VREINTERPRET_BUILTIN2(A, B) \
+  VREINTERPRET_BUILTIN (A, B, d)
+
+#define VREINTERPRET_BUILTINS1(A) \
+  VREINTERPRET_BUILTIN2 (A, bf16) \
+  VREINTERPRET_BUILTIN2 (A, f16) \
+  VREINTERPRET_BUILTIN2 (A, f32) \
+  VREINTERPRET_BUILTIN2 (A, f64) \
+  VREINTERPRET_BUILTIN2 (A, s8) \
+  VREINTERPRET_BUILTIN2 (A, s16) \
+  VREINTERPRET_BUILTIN2 (A, s32) \
+  VREINTERPRET_BUILTIN2 (A, s64) \
+  VREINTERPRET_BUILTIN2 (A, u8) \
+  VREINTERPRET_BUILTIN2 (A, u16) \
+  VREINTERPRET_BUILTIN2 (A, u32) \
+  VREINTERPRET_BUILTIN2 (A, u64) \
+  VREINTERPRET_BUILTIN2 (A, p8) \
+  VREINTERPRET_BUILTIN2 (A, p16) \
+  VREINTERPRET_BUILTIN2 (A, p64)
+
+#define VREINTERPRET_BUILTINS \
+  VREINTERPRET_BUILTINS1 (bf16) \
+  VREINTERPRET_BUILTINS1 (f16) \
+  VREINTERPRET_BUILTINS1 (f32) \
+  VREINTERPRET_BUILTINS1 (f64) \
+  VREINTERPRET_BUILTINS1 (s8) \
+  VREINTERPRET_BUILTINS1 (s16) \
+  VREINTERPRET_BUILTINS1 (s32) \
+  VREINTERPRET_BUILTINS1 (s64) \
+  VREINTERPRET_BUILTINS1 (u8) \
+  VREINTERPRET_BUILTINS1 (u16) \
+  VREINTERPRET_BUILTINS1 (u32) \
+  VREINTERPRET_BUILTINS1 (u64) \
+  VREINTERPRET_BUILTINS1 (p8) \
+  VREINTERPRET_BUILTINS1 (p16) \
+  VREINTERPRET_BUILTINS1 (p64)
+
+/* vreinterpretq intrinsics are additionally defined for p128.
+   {     _bf16                 }   {     _bf16                 }
+   {      _f16 _f32 _f64       }   {      _f16 _f32 _f64       }
+   { _s8  _s16 _s32 _s64       } x { _s8  _s16 _s32 _s64       }
+   { _u8  _u16 _u32 _u64       }   { _u8  _u16 _u32 _u64       }
+   { _p8  _p16      _p64 _p128 }   { _p8  _p16      _p64 _p128 }.  */
+#define VREINTERPRETQ_BUILTIN2(A, B) \
+  VREINTERPRET_BUILTIN (A, B, q)
+
+#define VREINTERPRETQ_BUILTINS1(A) \
+  VREINTERPRETQ_BUILTIN2 (A, bf16) \
+  VREINTERPRETQ_BUILTIN2 (A, f16) \
+  VREINTERPRETQ_BUILTIN2 (A, f32) \
+  VREINTERPRETQ_BUILTIN2 (A, f64) \
+  VREINTERPRETQ_BUILTIN2 (A, s8) \
+  VREINTERPRETQ_BUILTIN2 (A, s16) \
+  VREINTERPRETQ_BUILTIN2 (A, s32) \
+  VREINTERPRETQ_BUILTIN2 (A, s64) \
+  VREINTERPRETQ_BUILTIN2 (A, u8) \
+  VREINTERPRETQ_BUILTIN2 (A, u16) \
+  VREINTERPRETQ_BUILTIN2 (A, u32) \
+  VREINTERPRETQ_BUILTIN2 (A, u64) \
+  VREINTERPRETQ_BUILTIN2 (A, p8) \
+  VREINTERPRETQ_BUILTIN2 (A, p16) \
+  VREINTERPRETQ_BUILTIN2 (A, p64) \
+  VREINTERPRETQ_BUILTIN2 (A, p128)
+
+#define VREINTERPRETQ_BUILTINS \
+  VREINTERPRETQ_BUILTINS1 (bf16) \
+  VREINTERPRETQ_BUILTINS1 (f16) \
+  VREINTERPRETQ_BUILTINS1 (f32) \
+  VREINTERPRETQ_BUILTINS1 (f64) \
+  VREINTERPRETQ_BUILTINS1 (s8) \
+  VREINTERPRETQ_BUILTINS1 (s16) \
+  VREINTERPRETQ_BUILTINS1 (s32) \
+  VREINTERPRETQ_BUILTINS1 (s64) \
+  VREINTERPRETQ_BUILTINS1 (u8) \
+  VREINTERPRETQ_BUILTINS1 (u16) \
+  VREINTERPRETQ_BUILTINS1 (u32) \
+  VREINTERPRETQ_BUILTINS1 (u64) \
+  VREINTERPRETQ_BUILTINS1 (p8) \
+  VREINTERPRETQ_BUILTINS1 (p16) \
+  VREINTERPRETQ_BUILTINS1 (p64) \
+  VREINTERPRETQ_BUILTINS1 (p128)
+
+#define AARCH64_SIMD_VREINTERPRET_BUILTINS \
+  VREINTERPRET_BUILTINS \
+  VREINTERPRETQ_BUILTINS
+
 typedef struct
 {
   const char *name;
@@ -540,12 +690,27 @@  typedef struct
   bool lane;
 } aarch64_fcmla_laneq_builtin_datum;
 
+/* Hold information about how to declare SIMD intrinsics.  */
+typedef struct
+{
+  const char *name;
+  unsigned int fcode;
+  unsigned int op_count;
+  machine_mode op_modes[SIMD_MAX_BUILTIN_ARGS];
+  enum aarch64_type_qualifiers qualifiers[SIMD_MAX_BUILTIN_ARGS];
+  unsigned int flags;
+  bool skip;
+} aarch64_simd_intrinsic_datum;
+
 #define CRC32_BUILTIN(N, M) \
   AARCH64_BUILTIN_##N,
 
 #define FCMLA_LANEQ_BUILTIN(I, N, X, M, T) \
   AARCH64_SIMD_BUILTIN_FCMLA_LANEQ##I##_##M,
 
+#define VREINTERPRET_BUILTIN(A, B, L) \
+  AARCH64_SIMD_BUILTIN_VREINTERPRET##L##_##A##_##B,
+
 #undef VAR1
 #define VAR1(T, N, MAP, FLAG, A) \
   AARCH64_SIMD_BUILTIN_##T##_##N##A,
@@ -579,6 +744,8 @@  enum aarch64_builtins
   AARCH64_CRC32_BUILTIN_BASE,
   AARCH64_CRC32_BUILTINS
   AARCH64_CRC32_BUILTIN_MAX,
+  /* SIMD intrinsic builtins.  */
+  AARCH64_SIMD_VREINTERPRET_BUILTINS
   /* ARMv8.3-A Pointer Authentication Builtins.  */
   AARCH64_PAUTH_BUILTIN_AUTIA1716,
   AARCH64_PAUTH_BUILTIN_PACIA1716,
@@ -635,6 +802,23 @@  static aarch64_fcmla_laneq_builtin_datum aarch64_fcmla_lane_builtin_data[] = {
   AARCH64_SIMD_FCMLA_LANEQ_BUILTINS
 };
 
+#undef VREINTERPRET_BUILTIN
+#define VREINTERPRET_BUILTIN(A, B, L) \
+  {"vreinterpret" SIMD_INTR_LENGTH_CHAR(L) "_" #A "_" #B, \
+   AARCH64_SIMD_BUILTIN_VREINTERPRET##L##_##A##_##B, \
+   2, \
+   { SIMD_INTR_MODE(A, L), SIMD_INTR_MODE(B, L) }, \
+   { SIMD_INTR_QUAL(A), SIMD_INTR_QUAL(B) }, \
+   FLAG_AUTO_FP, \
+   SIMD_INTR_MODE(A, L) == SIMD_INTR_MODE(B, L) \
+     && SIMD_INTR_QUAL(A) == SIMD_INTR_QUAL(B) \
+  },
+
+static const aarch64_simd_intrinsic_datum aarch64_simd_intrinsic_data[] = {
+  AARCH64_SIMD_VREINTERPRET_BUILTINS
+};
+
+
 #undef CRC32_BUILTIN
 
 static GTY(()) tree aarch64_builtin_decls[AARCH64_BUILTIN_MAX];
@@ -1148,6 +1332,44 @@  aarch64_init_fcmla_laneq_builtins (void)
     }
 }
 
+void
+aarch64_init_simd_intrinsics (void)
+{
+  unsigned int i = 0;
+
+  for (i = 0; i < ARRAY_SIZE (aarch64_simd_intrinsic_data); ++i)
+    {
+      auto d = &aarch64_simd_intrinsic_data[i];
+
+      if (d->skip)
+	continue;
+
+      tree return_type = void_type_node;
+      tree args = void_list_node;
+
+      for (int op_num = d->op_count - 1; op_num >= 0; op_num--)
+	{
+	  machine_mode op_mode = d->op_modes[op_num];
+	  enum aarch64_type_qualifiers qualifiers = d->qualifiers[op_num];
+
+	  tree eltype = aarch64_build_simd_builtin_type (op_mode, qualifiers);
+
+	  if (op_num == 0)
+	    return_type = eltype;
+	  else
+	    args = tree_cons (NULL_TREE, eltype, args);
+	}
+
+      tree ftype = build_function_type (return_type, args);
+      tree attrs = aarch64_get_attributes (FLAG_AUTO_FP, d->op_modes[0]);
+      unsigned int code
+	      = (d->fcode << AARCH64_BUILTIN_SHIFT | AARCH64_BUILTIN_GENERAL);
+      tree fndecl = simulate_builtin_function_decl (input_location, d->name,
+						    ftype, code, NULL, attrs);
+      aarch64_builtin_decls[d->fcode] = fndecl;
+    }
+}
+
 void
 aarch64_init_simd_builtin_functions (bool called_from_pragma)
 {
@@ -1347,7 +1569,10 @@  aarch64_simd_switcher::~aarch64_simd_switcher ()
   aarch64_isa_flags = m_old_isa_flags;
 }
 
-/* Implement #pragma GCC aarch64 "arm_neon.h".  */
+/* Implement #pragma GCC aarch64 "arm_neon.h".
+
+   The types and functions defined here need to be available internally
+   during LTO as well.  */
 void
 handle_arm_neon_h (void)
 {
@@ -1360,6 +1585,7 @@  handle_arm_neon_h (void)
 	register_tuple_type (count, i);
 
   aarch64_init_simd_builtin_functions (true);
+  aarch64_init_simd_intrinsics ();
 }
 
 void
@@ -2710,6 +2936,11 @@  aarch64_fold_builtin_lane_check (tree arg0, tree arg1, tree arg2)
 #define VAR1(T, N, MAP, FLAG, A) \
   case AARCH64_SIMD_BUILTIN_##T##_##N##A:
 
+#undef VREINTERPRET_BUILTIN
+#define VREINTERPRET_BUILTIN(A, B, L) \
+  case AARCH64_SIMD_BUILTIN_VREINTERPRET##L##_##A##_##B:
+
+
 /* Try to fold a call to the built-in function with subcode FCODE.  The
    function is passed the N_ARGS arguments in ARGS and it returns a value
    of type TYPE.  Return the new expression on success and NULL_TREE on
@@ -2726,6 +2957,8 @@  aarch64_general_fold_builtin (unsigned int fcode, tree type,
       VAR1 (UNOP, floatv4si, 2, ALL, v4sf)
       VAR1 (UNOP, floatv2di, 2, ALL, v2df)
 	return fold_build1 (FLOAT_EXPR, type, args[0]);
+      AARCH64_SIMD_VREINTERPRET_BUILTINS
+	return fold_build1 (VIEW_CONVERT_EXPR, type, args[0]);
       case AARCH64_SIMD_BUILTIN_LANE_CHECK:
 	gcc_assert (n_args == 3);
 	if (aarch64_fold_builtin_lane_check (args[0], args[1], args[2]))
diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h
index 85d03c58d2a98c1b8b84f007a82bb976601b424e..cf6af728ca99dae1cb6ab647466cfec32f7e913e 100644
--- a/gcc/config/aarch64/arm_neon.h
+++ b/gcc/config/aarch64/arm_neon.h
@@ -2827,2753 +2827,6 @@  vgetq_lane_u64 (uint64x2_t __a, const int __b)
   return __aarch64_vget_lane_any (__a, __b);
 }
 
-/* vreinterpret  */
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_f16 (float16x4_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_f64 (float64x1_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_s8 (int8x8_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_s16 (int16x4_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_s32 (int32x2_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_s64 (int64x1_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_f32 (float32x2_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_u8 (uint8x8_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_u16 (uint16x4_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_u32 (uint32x2_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_u64 (uint64x1_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_p16 (poly16x4_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_p64 (poly64x1_t __a)
-{
-  return (poly8x8_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_f64 (float64x2_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_s8 (int8x16_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_s16 (int16x8_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_s32 (int32x4_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_s64 (int64x2_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_f16 (float16x8_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_f32 (float32x4_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_u8 (uint8x16_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_u16 (uint16x8_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_u32 (uint32x4_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_u64 (uint64x2_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_p16 (poly16x8_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_p64 (poly64x2_t __a)
-{
-  return (poly8x16_t) __a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_p128 (poly128_t __a)
-{
-  return (poly8x16_t)__a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_f16 (float16x4_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_f64 (float64x1_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_s8 (int8x8_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_s16 (int16x4_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_s32 (int32x2_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_s64 (int64x1_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_f32 (float32x2_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_u8 (uint8x8_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_u16 (uint16x4_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_u32 (uint32x2_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_u64 (uint64x1_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_p8 (poly8x8_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_p64 (poly64x1_t __a)
-{
-  return (poly16x4_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_f64 (float64x2_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_s8 (int8x16_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_s16 (int16x8_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_s32 (int32x4_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_s64 (int64x2_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_f16 (float16x8_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_f32 (float32x4_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_u8 (uint8x16_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_u16 (uint16x8_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_u32 (uint32x4_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_u64 (uint64x2_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_p8 (poly8x16_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_p64 (poly64x2_t __a)
-{
-  return (poly16x8_t) __a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_p128 (poly128_t __a)
-{
-  return (poly16x8_t)__a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_f16 (float16x4_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_f64 (float64x1_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_s8 (int8x8_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_s16 (int16x4_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_s32 (int32x2_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_s64 (int64x1_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_f32 (float32x2_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_u8 (uint8x8_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_u16 (uint16x4_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_u32 (uint32x2_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_u64 (uint64x1_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_p8 (poly8x8_t __a)
-{
-  return (poly64x1_t) __a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_p16 (poly16x4_t __a)
-{
-  return (poly64x1_t)__a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_f64 (float64x2_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_s8 (int8x16_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_s16 (int16x8_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_s32 (int32x4_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_s64 (int64x2_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_f16 (float16x8_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_f32 (float32x4_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_p128 (poly128_t __a)
-{
-  return (poly64x2_t)__a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_u8 (uint8x16_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_u16 (uint16x8_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_p16 (poly16x8_t __a)
-{
-  return (poly64x2_t)__a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_u32 (uint32x4_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_u64 (uint64x2_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_p8 (poly8x16_t __a)
-{
-  return (poly64x2_t) __a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_p8 (poly8x16_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_p16 (poly16x8_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_f16 (float16x8_t __a)
-{
-  return (poly128_t) __a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_f32 (float32x4_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_p64 (poly64x2_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_s64 (int64x2_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_u64 (uint64x2_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_s8 (int8x16_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_s16 (int16x8_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_s32 (int32x4_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_u8 (uint8x16_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_u16 (uint16x8_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_u32 (uint32x4_t __a)
-{
-  return (poly128_t)__a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_f64 (float64x1_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_s8 (int8x8_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_s16 (int16x4_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_s32 (int32x2_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_s64 (int64x1_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_f32 (float32x2_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_u8 (uint8x8_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_u16 (uint16x4_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_u32 (uint32x2_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_u64 (uint64x1_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_p8 (poly8x8_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_p16 (poly16x4_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_p64 (poly64x1_t __a)
-{
-  return (float16x4_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_f64 (float64x2_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_s8 (int8x16_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_s16 (int16x8_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_s32 (int32x4_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_s64 (int64x2_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_f32 (float32x4_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_u8 (uint8x16_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_u16 (uint16x8_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_u32 (uint32x4_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_u64 (uint64x2_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_p8 (poly8x16_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_p128 (poly128_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_p16 (poly16x8_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_p64 (poly64x2_t __a)
-{
-  return (float16x8_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_f16 (float16x4_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_f64 (float64x1_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_s8 (int8x8_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_s16 (int16x4_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_s32 (int32x2_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_s64 (int64x1_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_u8 (uint8x8_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_u16 (uint16x4_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_u32 (uint32x2_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_u64 (uint64x1_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_p8 (poly8x8_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_p16 (poly16x4_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_p64 (poly64x1_t __a)
-{
-  return (float32x2_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_f16 (float16x8_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_f64 (float64x2_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_s8 (int8x16_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_s16 (int16x8_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_s32 (int32x4_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_s64 (int64x2_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_u8 (uint8x16_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_u16 (uint16x8_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_u32 (uint32x4_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_u64 (uint64x2_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_p8 (poly8x16_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_p16 (poly16x8_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_p64 (poly64x2_t __a)
-{
-  return (float32x4_t) __a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_p128 (poly128_t __a)
-{
-  return (float32x4_t)__a;
-}
-
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_f16 (float16x4_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_f32 (float32x2_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_p8 (poly8x8_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_p16 (poly16x4_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_p64 (poly64x1_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_s8 (int8x8_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_s16 (int16x4_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_s32 (int32x2_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_s64 (int64x1_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_u8 (uint8x8_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_u16 (uint16x4_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_u32 (uint32x2_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_u64 (uint64x1_t __a)
-{
-  return (float64x1_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_f16 (float16x8_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_f32 (float32x4_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_p8 (poly8x16_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_p16 (poly16x8_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_p64 (poly64x2_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_s8 (int8x16_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_s16 (int16x8_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_s32 (int32x4_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_s64 (int64x2_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_u8 (uint8x16_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_u16 (uint16x8_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_u32 (uint32x4_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_u64 (uint64x2_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_f16 (float16x4_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_f64 (float64x1_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_s8 (int8x8_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_s16 (int16x4_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_s32 (int32x2_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_f32 (float32x2_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_u8 (uint8x8_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_u16 (uint16x4_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_u32 (uint32x2_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_u64 (uint64x1_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_p8 (poly8x8_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_p16 (poly16x4_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_p64 (poly64x1_t __a)
-{
-  return (int64x1_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_f64 (float64x2_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_s8 (int8x16_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_s16 (int16x8_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_s32 (int32x4_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_f16 (float16x8_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_f32 (float32x4_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_u8 (uint8x16_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_u16 (uint16x8_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_u32 (uint32x4_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_u64 (uint64x2_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_p8 (poly8x16_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_p16 (poly16x8_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_p64 (poly64x2_t __a)
-{
-  return (int64x2_t) __a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_p128 (poly128_t __a)
-{
-  return (int64x2_t)__a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_f16 (float16x4_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_f64 (float64x1_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_s8 (int8x8_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_s16 (int16x4_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_s32 (int32x2_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_s64 (int64x1_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_f32 (float32x2_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_u8 (uint8x8_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_u16 (uint16x4_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_u32 (uint32x2_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_p8 (poly8x8_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_p16 (poly16x4_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_p64 (poly64x1_t __a)
-{
-  return (uint64x1_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_f64 (float64x2_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_s8 (int8x16_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_s16 (int16x8_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_s32 (int32x4_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_s64 (int64x2_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_f16 (float16x8_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_f32 (float32x4_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_u8 (uint8x16_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_u16 (uint16x8_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_u32 (uint32x4_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_p8 (poly8x16_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_p16 (poly16x8_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_p64 (poly64x2_t __a)
-{
-  return (uint64x2_t) __a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_p128 (poly128_t __a)
-{
-  return (uint64x2_t)__a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_f16 (float16x4_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_f64 (float64x1_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_s16 (int16x4_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_s32 (int32x2_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_s64 (int64x1_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_f32 (float32x2_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_u8 (uint8x8_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_u16 (uint16x4_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_u32 (uint32x2_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_u64 (uint64x1_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_p8 (poly8x8_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_p16 (poly16x4_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_p64 (poly64x1_t __a)
-{
-  return (int8x8_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_f64 (float64x2_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_s16 (int16x8_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_s32 (int32x4_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_s64 (int64x2_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_f16 (float16x8_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_f32 (float32x4_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_u8 (uint8x16_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_u16 (uint16x8_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_u32 (uint32x4_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_u64 (uint64x2_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_p8 (poly8x16_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_p16 (poly16x8_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_p64 (poly64x2_t __a)
-{
-  return (int8x16_t) __a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_p128 (poly128_t __a)
-{
-  return (int8x16_t)__a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_f16 (float16x4_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_f64 (float64x1_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_s8 (int8x8_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_s32 (int32x2_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_s64 (int64x1_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_f32 (float32x2_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_u8 (uint8x8_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_u16 (uint16x4_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_u32 (uint32x2_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_u64 (uint64x1_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_p8 (poly8x8_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_p16 (poly16x4_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_p64 (poly64x1_t __a)
-{
-  return (int16x4_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_f64 (float64x2_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_s8 (int8x16_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_s32 (int32x4_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_s64 (int64x2_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_f16 (float16x8_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_f32 (float32x4_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_u8 (uint8x16_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_u16 (uint16x8_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_u32 (uint32x4_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_u64 (uint64x2_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_p8 (poly8x16_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_p16 (poly16x8_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_p64 (poly64x2_t __a)
-{
-  return (int16x8_t) __a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_p128 (poly128_t __a)
-{
-  return (int16x8_t)__a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_f16 (float16x4_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_f64 (float64x1_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_s8 (int8x8_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_s16 (int16x4_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_s64 (int64x1_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_f32 (float32x2_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_u8 (uint8x8_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_u16 (uint16x4_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_u32 (uint32x2_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_u64 (uint64x1_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_p8 (poly8x8_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_p16 (poly16x4_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_p64 (poly64x1_t __a)
-{
-  return (int32x2_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_f64 (float64x2_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_s8 (int8x16_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_s16 (int16x8_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_s64 (int64x2_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_f16 (float16x8_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_f32 (float32x4_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_u8 (uint8x16_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_u16 (uint16x8_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_u32 (uint32x4_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_u64 (uint64x2_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_p8 (poly8x16_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_p16 (poly16x8_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_p64 (poly64x2_t __a)
-{
-  return (int32x4_t) __a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_p128 (poly128_t __a)
-{
-  return (int32x4_t)__a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_f16 (float16x4_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_f64 (float64x1_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_s8 (int8x8_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_s16 (int16x4_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_s32 (int32x2_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_s64 (int64x1_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_f32 (float32x2_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_u16 (uint16x4_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_u32 (uint32x2_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_u64 (uint64x1_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_p8 (poly8x8_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_p16 (poly16x4_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_p64 (poly64x1_t __a)
-{
-  return (uint8x8_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_f64 (float64x2_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_s8 (int8x16_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_s16 (int16x8_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_s32 (int32x4_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_s64 (int64x2_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_f16 (float16x8_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_f32 (float32x4_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_u16 (uint16x8_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_u32 (uint32x4_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_u64 (uint64x2_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_p8 (poly8x16_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_p16 (poly16x8_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_p64 (poly64x2_t __a)
-{
-  return (uint8x16_t) __a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_p128 (poly128_t __a)
-{
-  return (uint8x16_t)__a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_f16 (float16x4_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_f64 (float64x1_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_s8 (int8x8_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_s16 (int16x4_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_s32 (int32x2_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_s64 (int64x1_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_f32 (float32x2_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_u8 (uint8x8_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_u32 (uint32x2_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_u64 (uint64x1_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_p8 (poly8x8_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_p16 (poly16x4_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_p64 (poly64x1_t __a)
-{
-  return (uint16x4_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_f64 (float64x2_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_s8 (int8x16_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_s16 (int16x8_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_s32 (int32x4_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_s64 (int64x2_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_f16 (float16x8_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_f32 (float32x4_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_u8 (uint8x16_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_u32 (uint32x4_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_u64 (uint64x2_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_p8 (poly8x16_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_p16 (poly16x8_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_p64 (poly64x2_t __a)
-{
-  return (uint16x8_t) __a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_p128 (poly128_t __a)
-{
-  return (uint16x8_t)__a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_f16 (float16x4_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_f64 (float64x1_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_s8 (int8x8_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_s16 (int16x4_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_s32 (int32x2_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_s64 (int64x1_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_f32 (float32x2_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_u8 (uint8x8_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_u16 (uint16x4_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_u64 (uint64x1_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_p8 (poly8x8_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_p16 (poly16x4_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_p64 (poly64x1_t __a)
-{
-  return (uint32x2_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_f64 (float64x2_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_s8 (int8x16_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_s16 (int16x8_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_s32 (int32x4_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_s64 (int64x2_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_f16 (float16x8_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_f32 (float32x4_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_u8 (uint8x16_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_u16 (uint16x8_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_u64 (uint64x2_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_p8 (poly8x16_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_p16 (poly16x8_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_p64 (poly64x2_t __a)
-{
-  return (uint32x4_t) __a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_p128 (poly128_t __a)
-{
-  return (uint32x4_t)__a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_p128 (poly128_t __a)
-{
-  return (float64x2_t) __a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_f64 (float64x2_t __a)
-{
-  return (poly128_t) __a;
-}
-
 /* vset_lane  */
 
 __extension__ extern __inline float16x4_t
@@ -30988,414 +28241,6 @@  vst4q_bf16 (bfloat16_t * __a, bfloat16x8x4_t __val)
   __builtin_aarch64_st4v8bf ((__builtin_aarch64_simd_bf *) __a, __val);
 }
 
-/* vreinterpret */
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_u8 (uint8x8_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_u16 (uint16x4_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_u32 (uint32x2_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_u64 (uint64x1_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_s8 (int8x8_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_s16 (int16x4_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_s32 (int32x2_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_s64 (int64x1_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_p8 (poly8x8_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_p16 (poly16x4_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_p64 (poly64x1_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_f16 (float16x4_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_f32 (float32x2_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_bf16_f64 (float64x1_t __a)
-{
-  return (bfloat16x4_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_u8 (uint8x16_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_u16 (uint16x8_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_u32 (uint32x4_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_u64 (uint64x2_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_s8 (int8x16_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_s16 (int16x8_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_s32 (int32x4_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_s64 (int64x2_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_p8 (poly8x16_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_p16 (poly16x8_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_p64 (poly64x2_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_p128 (poly128_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_f16 (float16x8_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_f32 (float32x4_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline bfloat16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_bf16_f64 (float64x2_t __a)
-{
-  return (bfloat16x8_t)__a;
-}
-
-__extension__ extern __inline int8x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s8_bf16 (bfloat16x4_t __a)
-{
-  return (int8x8_t)__a;
-}
-
-__extension__ extern __inline int16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s16_bf16 (bfloat16x4_t __a)
-{
-  return (int16x4_t)__a;
-}
-
-__extension__ extern __inline int32x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s32_bf16 (bfloat16x4_t __a)
-{
-  return (int32x2_t)__a;
-}
-
-__extension__ extern __inline int64x1_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_s64_bf16 (bfloat16x4_t __a)
-{
-  return (int64x1_t)__a;
-}
-
-__extension__ extern __inline uint8x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u8_bf16 (bfloat16x4_t __a)
-{
-  return (uint8x8_t)__a;
-}
-
-__extension__ extern __inline uint16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u16_bf16 (bfloat16x4_t __a)
-{
-  return (uint16x4_t)__a;
-}
-
-__extension__ extern __inline uint32x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u32_bf16 (bfloat16x4_t __a)
-{
-  return (uint32x2_t)__a;
-}
-
-__extension__ extern __inline uint64x1_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_u64_bf16 (bfloat16x4_t __a)
-{
-  return (uint64x1_t)__a;
-}
-
-__extension__ extern __inline float16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f16_bf16 (bfloat16x4_t __a)
-{
-  return (float16x4_t)__a;
-}
-
-__extension__ extern __inline float32x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f32_bf16 (bfloat16x4_t __a)
-{
-  return (float32x2_t)__a;
-}
-
-__extension__ extern __inline float64x1_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_f64_bf16 (bfloat16x4_t __a)
-{
-  return (float64x1_t)__a;
-}
-
-__extension__ extern __inline poly8x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p8_bf16 (bfloat16x4_t __a)
-{
-  return (poly8x8_t)__a;
-}
-
-__extension__ extern __inline poly16x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p16_bf16 (bfloat16x4_t __a)
-{
-  return (poly16x4_t)__a;
-}
-
-__extension__ extern __inline poly64x1_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpret_p64_bf16 (bfloat16x4_t __a)
-{
-  return (poly64x1_t)__a;
-}
-
-__extension__ extern __inline int8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s8_bf16 (bfloat16x8_t __a)
-{
-  return (int8x16_t)__a;
-}
-
-__extension__ extern __inline int16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s16_bf16 (bfloat16x8_t __a)
-{
-  return (int16x8_t)__a;
-}
-
-__extension__ extern __inline int32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s32_bf16 (bfloat16x8_t __a)
-{
-  return (int32x4_t)__a;
-}
-
-__extension__ extern __inline int64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_s64_bf16 (bfloat16x8_t __a)
-{
-  return (int64x2_t)__a;
-}
-
-__extension__ extern __inline uint8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u8_bf16 (bfloat16x8_t __a)
-{
-  return (uint8x16_t)__a;
-}
-
-__extension__ extern __inline uint16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u16_bf16 (bfloat16x8_t __a)
-{
-  return (uint16x8_t)__a;
-}
-
-__extension__ extern __inline uint32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u32_bf16 (bfloat16x8_t __a)
-{
-  return (uint32x4_t)__a;
-}
-
-__extension__ extern __inline uint64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_u64_bf16 (bfloat16x8_t __a)
-{
-  return (uint64x2_t)__a;
-}
-
-__extension__ extern __inline float16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f16_bf16 (bfloat16x8_t __a)
-{
-  return (float16x8_t)__a;
-}
-
-__extension__ extern __inline float32x4_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f32_bf16 (bfloat16x8_t __a)
-{
-  return (float32x4_t)__a;
-}
-
-__extension__ extern __inline float64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_f64_bf16 (bfloat16x8_t __a)
-{
-  return (float64x2_t)__a;
-}
-
-__extension__ extern __inline poly8x16_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p8_bf16 (bfloat16x8_t __a)
-{
-  return (poly8x16_t)__a;
-}
-
-__extension__ extern __inline poly16x8_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p16_bf16 (bfloat16x8_t __a)
-{
-  return (poly16x8_t)__a;
-}
-
-__extension__ extern __inline poly64x2_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p64_bf16 (bfloat16x8_t __a)
-{
-  return (poly64x2_t)__a;
-}
-
-__extension__ extern __inline poly128_t
-__attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vreinterpretq_p128_bf16 (bfloat16x8_t __a)
-{
-  return (poly128_t)__a;
-}
-
 __extension__ extern __inline float32x2_t
 __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
 vbfdot_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b)