| /* ARM NEON intrinsics include file. |
| |
| Copyright (C) 2011-2014 Free Software Foundation, Inc. |
| Contributed by ARM Ltd. |
| |
| This file is part of GCC. |
| |
| GCC is free software; you can redistribute it and/or modify it |
| under the terms of the GNU General Public License as published |
| by the Free Software Foundation; either version 3, or (at your |
| option) any later version. |
| |
| GCC is distributed in the hope that it will be useful, but WITHOUT |
| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
| or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public |
| License for more details. |
| |
| Under Section 7 of GPL version 3, you are granted additional |
| permissions described in the GCC Runtime Library Exception, version |
| 3.1, as published by the Free Software Foundation. |
| |
| You should have received a copy of the GNU General Public License and |
| a copy of the GCC Runtime Library Exception along with this program; |
| see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
| <http://www.gnu.org/licenses/>. */ |
| |
| #ifndef _AARCH64_NEON_H_ |
| #define _AARCH64_NEON_H_ |
| |
| #include <stdint.h> |
| |
| #define __AARCH64_UINT64_C(__C) ((uint64_t) __C) |
| #define __AARCH64_INT64_C(__C) ((int64_t) __C) |
| |
| typedef __builtin_aarch64_simd_qi int8x8_t |
| __attribute__ ((__vector_size__ (8))); |
| typedef __builtin_aarch64_simd_hi int16x4_t |
| __attribute__ ((__vector_size__ (8))); |
| typedef __builtin_aarch64_simd_si int32x2_t |
| __attribute__ ((__vector_size__ (8))); |
| typedef int64_t int64x1_t; |
| typedef double float64x1_t; |
| typedef __builtin_aarch64_simd_sf float32x2_t |
| __attribute__ ((__vector_size__ (8))); |
| typedef __builtin_aarch64_simd_poly8 poly8x8_t |
| __attribute__ ((__vector_size__ (8))); |
| typedef __builtin_aarch64_simd_poly16 poly16x4_t |
| __attribute__ ((__vector_size__ (8))); |
| typedef __builtin_aarch64_simd_uqi uint8x8_t |
| __attribute__ ((__vector_size__ (8))); |
| typedef __builtin_aarch64_simd_uhi uint16x4_t |
| __attribute__ ((__vector_size__ (8))); |
| typedef __builtin_aarch64_simd_usi uint32x2_t |
| __attribute__ ((__vector_size__ (8))); |
| typedef uint64_t uint64x1_t; |
| typedef __builtin_aarch64_simd_qi int8x16_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_hi int16x8_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_si int32x4_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_di int64x2_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_sf float32x4_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_df float64x2_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_poly8 poly8x16_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_poly16 poly16x8_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_poly64 poly64x2_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_uqi uint8x16_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_uhi uint16x8_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_usi uint32x4_t |
| __attribute__ ((__vector_size__ (16))); |
| typedef __builtin_aarch64_simd_udi uint64x2_t |
| __attribute__ ((__vector_size__ (16))); |
| |
| typedef float float32_t; |
| typedef double float64_t; |
| typedef __builtin_aarch64_simd_poly8 poly8_t; |
| typedef __builtin_aarch64_simd_poly16 poly16_t; |
| typedef __builtin_aarch64_simd_poly64 poly64_t; |
| typedef __builtin_aarch64_simd_poly128 poly128_t; |
| |
| typedef struct int8x8x2_t |
| { |
| int8x8_t val[2]; |
| } int8x8x2_t; |
| |
| typedef struct int8x16x2_t |
| { |
| int8x16_t val[2]; |
| } int8x16x2_t; |
| |
| typedef struct int16x4x2_t |
| { |
| int16x4_t val[2]; |
| } int16x4x2_t; |
| |
| typedef struct int16x8x2_t |
| { |
| int16x8_t val[2]; |
| } int16x8x2_t; |
| |
| typedef struct int32x2x2_t |
| { |
| int32x2_t val[2]; |
| } int32x2x2_t; |
| |
| typedef struct int32x4x2_t |
| { |
| int32x4_t val[2]; |
| } int32x4x2_t; |
| |
| typedef struct int64x1x2_t |
| { |
| int64x1_t val[2]; |
| } int64x1x2_t; |
| |
| typedef struct int64x2x2_t |
| { |
| int64x2_t val[2]; |
| } int64x2x2_t; |
| |
| typedef struct uint8x8x2_t |
| { |
| uint8x8_t val[2]; |
| } uint8x8x2_t; |
| |
| typedef struct uint8x16x2_t |
| { |
| uint8x16_t val[2]; |
| } uint8x16x2_t; |
| |
| typedef struct uint16x4x2_t |
| { |
| uint16x4_t val[2]; |
| } uint16x4x2_t; |
| |
| typedef struct uint16x8x2_t |
| { |
| uint16x8_t val[2]; |
| } uint16x8x2_t; |
| |
| typedef struct uint32x2x2_t |
| { |
| uint32x2_t val[2]; |
| } uint32x2x2_t; |
| |
| typedef struct uint32x4x2_t |
| { |
| uint32x4_t val[2]; |
| } uint32x4x2_t; |
| |
| typedef struct uint64x1x2_t |
| { |
| uint64x1_t val[2]; |
| } uint64x1x2_t; |
| |
| typedef struct uint64x2x2_t |
| { |
| uint64x2_t val[2]; |
| } uint64x2x2_t; |
| |
| typedef struct float32x2x2_t |
| { |
| float32x2_t val[2]; |
| } float32x2x2_t; |
| |
| typedef struct float32x4x2_t |
| { |
| float32x4_t val[2]; |
| } float32x4x2_t; |
| |
| typedef struct float64x2x2_t |
| { |
| float64x2_t val[2]; |
| } float64x2x2_t; |
| |
| typedef struct float64x1x2_t |
| { |
| float64x1_t val[2]; |
| } float64x1x2_t; |
| |
| typedef struct poly8x8x2_t |
| { |
| poly8x8_t val[2]; |
| } poly8x8x2_t; |
| |
| typedef struct poly8x16x2_t |
| { |
| poly8x16_t val[2]; |
| } poly8x16x2_t; |
| |
| typedef struct poly16x4x2_t |
| { |
| poly16x4_t val[2]; |
| } poly16x4x2_t; |
| |
| typedef struct poly16x8x2_t |
| { |
| poly16x8_t val[2]; |
| } poly16x8x2_t; |
| |
| typedef struct int8x8x3_t |
| { |
| int8x8_t val[3]; |
| } int8x8x3_t; |
| |
| typedef struct int8x16x3_t |
| { |
| int8x16_t val[3]; |
| } int8x16x3_t; |
| |
| typedef struct int16x4x3_t |
| { |
| int16x4_t val[3]; |
| } int16x4x3_t; |
| |
| typedef struct int16x8x3_t |
| { |
| int16x8_t val[3]; |
| } int16x8x3_t; |
| |
| typedef struct int32x2x3_t |
| { |
| int32x2_t val[3]; |
| } int32x2x3_t; |
| |
| typedef struct int32x4x3_t |
| { |
| int32x4_t val[3]; |
| } int32x4x3_t; |
| |
| typedef struct int64x1x3_t |
| { |
| int64x1_t val[3]; |
| } int64x1x3_t; |
| |
| typedef struct int64x2x3_t |
| { |
| int64x2_t val[3]; |
| } int64x2x3_t; |
| |
| typedef struct uint8x8x3_t |
| { |
| uint8x8_t val[3]; |
| } uint8x8x3_t; |
| |
| typedef struct uint8x16x3_t |
| { |
| uint8x16_t val[3]; |
| } uint8x16x3_t; |
| |
| typedef struct uint16x4x3_t |
| { |
| uint16x4_t val[3]; |
| } uint16x4x3_t; |
| |
| typedef struct uint16x8x3_t |
| { |
| uint16x8_t val[3]; |
| } uint16x8x3_t; |
| |
| typedef struct uint32x2x3_t |
| { |
| uint32x2_t val[3]; |
| } uint32x2x3_t; |
| |
| typedef struct uint32x4x3_t |
| { |
| uint32x4_t val[3]; |
| } uint32x4x3_t; |
| |
| typedef struct uint64x1x3_t |
| { |
| uint64x1_t val[3]; |
| } uint64x1x3_t; |
| |
| typedef struct uint64x2x3_t |
| { |
| uint64x2_t val[3]; |
| } uint64x2x3_t; |
| |
| typedef struct float32x2x3_t |
| { |
| float32x2_t val[3]; |
| } float32x2x3_t; |
| |
| typedef struct float32x4x3_t |
| { |
| float32x4_t val[3]; |
| } float32x4x3_t; |
| |
| typedef struct float64x2x3_t |
| { |
| float64x2_t val[3]; |
| } float64x2x3_t; |
| |
| typedef struct float64x1x3_t |
| { |
| float64x1_t val[3]; |
| } float64x1x3_t; |
| |
| typedef struct poly8x8x3_t |
| { |
| poly8x8_t val[3]; |
| } poly8x8x3_t; |
| |
| typedef struct poly8x16x3_t |
| { |
| poly8x16_t val[3]; |
| } poly8x16x3_t; |
| |
| typedef struct poly16x4x3_t |
| { |
| poly16x4_t val[3]; |
| } poly16x4x3_t; |
| |
| typedef struct poly16x8x3_t |
| { |
| poly16x8_t val[3]; |
| } poly16x8x3_t; |
| |
| typedef struct int8x8x4_t |
| { |
| int8x8_t val[4]; |
| } int8x8x4_t; |
| |
| typedef struct int8x16x4_t |
| { |
| int8x16_t val[4]; |
| } int8x16x4_t; |
| |
| typedef struct int16x4x4_t |
| { |
| int16x4_t val[4]; |
| } int16x4x4_t; |
| |
| typedef struct int16x8x4_t |
| { |
| int16x8_t val[4]; |
| } int16x8x4_t; |
| |
| typedef struct int32x2x4_t |
| { |
| int32x2_t val[4]; |
| } int32x2x4_t; |
| |
| typedef struct int32x4x4_t |
| { |
| int32x4_t val[4]; |
| } int32x4x4_t; |
| |
| typedef struct int64x1x4_t |
| { |
| int64x1_t val[4]; |
| } int64x1x4_t; |
| |
| typedef struct int64x2x4_t |
| { |
| int64x2_t val[4]; |
| } int64x2x4_t; |
| |
| typedef struct uint8x8x4_t |
| { |
| uint8x8_t val[4]; |
| } uint8x8x4_t; |
| |
| typedef struct uint8x16x4_t |
| { |
| uint8x16_t val[4]; |
| } uint8x16x4_t; |
| |
| typedef struct uint16x4x4_t |
| { |
| uint16x4_t val[4]; |
| } uint16x4x4_t; |
| |
| typedef struct uint16x8x4_t |
| { |
| uint16x8_t val[4]; |
| } uint16x8x4_t; |
| |
| typedef struct uint32x2x4_t |
| { |
| uint32x2_t val[4]; |
| } uint32x2x4_t; |
| |
| typedef struct uint32x4x4_t |
| { |
| uint32x4_t val[4]; |
| } uint32x4x4_t; |
| |
| typedef struct uint64x1x4_t |
| { |
| uint64x1_t val[4]; |
| } uint64x1x4_t; |
| |
| typedef struct uint64x2x4_t |
| { |
| uint64x2_t val[4]; |
| } uint64x2x4_t; |
| |
| typedef struct float32x2x4_t |
| { |
| float32x2_t val[4]; |
| } float32x2x4_t; |
| |
| typedef struct float32x4x4_t |
| { |
| float32x4_t val[4]; |
| } float32x4x4_t; |
| |
| typedef struct float64x2x4_t |
| { |
| float64x2_t val[4]; |
| } float64x2x4_t; |
| |
| typedef struct float64x1x4_t |
| { |
| float64x1_t val[4]; |
| } float64x1x4_t; |
| |
| typedef struct poly8x8x4_t |
| { |
| poly8x8_t val[4]; |
| } poly8x8x4_t; |
| |
| typedef struct poly8x16x4_t |
| { |
| poly8x16_t val[4]; |
| } poly8x16x4_t; |
| |
| typedef struct poly16x4x4_t |
| { |
| poly16x4_t val[4]; |
| } poly16x4x4_t; |
| |
| typedef struct poly16x8x4_t |
| { |
| poly16x8_t val[4]; |
| } poly16x8x4_t; |
| |
| /* vget_lane internal macros. */ |
| |
| #define __aarch64_vget_lane_any(__size, __cast_ret, __cast_a, __a, __b) \ |
| (__cast_ret \ |
| __builtin_aarch64_be_checked_get_lane##__size (__cast_a __a, __b)) |
| |
| #define __aarch64_vget_lane_f32(__a, __b) \ |
| __aarch64_vget_lane_any (v2sf, , , __a, __b) |
| #define __aarch64_vget_lane_f64(__a, __b) (__a) |
| |
| #define __aarch64_vget_lane_p8(__a, __b) \ |
| __aarch64_vget_lane_any (v8qi, (poly8_t), (int8x8_t), __a, __b) |
| #define __aarch64_vget_lane_p16(__a, __b) \ |
| __aarch64_vget_lane_any (v4hi, (poly16_t), (int16x4_t), __a, __b) |
| |
| #define __aarch64_vget_lane_s8(__a, __b) \ |
| __aarch64_vget_lane_any (v8qi, , ,__a, __b) |
| #define __aarch64_vget_lane_s16(__a, __b) \ |
| __aarch64_vget_lane_any (v4hi, , ,__a, __b) |
| #define __aarch64_vget_lane_s32(__a, __b) \ |
| __aarch64_vget_lane_any (v2si, , ,__a, __b) |
| #define __aarch64_vget_lane_s64(__a, __b) (__a) |
| |
| #define __aarch64_vget_lane_u8(__a, __b) \ |
| __aarch64_vget_lane_any (v8qi, (uint8_t), (int8x8_t), __a, __b) |
| #define __aarch64_vget_lane_u16(__a, __b) \ |
| __aarch64_vget_lane_any (v4hi, (uint16_t), (int16x4_t), __a, __b) |
| #define __aarch64_vget_lane_u32(__a, __b) \ |
| __aarch64_vget_lane_any (v2si, (uint32_t), (int32x2_t), __a, __b) |
| #define __aarch64_vget_lane_u64(__a, __b) (__a) |
| |
| #define __aarch64_vgetq_lane_f32(__a, __b) \ |
| __aarch64_vget_lane_any (v4sf, , , __a, __b) |
| #define __aarch64_vgetq_lane_f64(__a, __b) \ |
| __aarch64_vget_lane_any (v2df, , , __a, __b) |
| |
| #define __aarch64_vgetq_lane_p8(__a, __b) \ |
| __aarch64_vget_lane_any (v16qi, (poly8_t), (int8x16_t), __a, __b) |
| #define __aarch64_vgetq_lane_p16(__a, __b) \ |
| __aarch64_vget_lane_any (v8hi, (poly16_t), (int16x8_t), __a, __b) |
| |
| #define __aarch64_vgetq_lane_s8(__a, __b) \ |
| __aarch64_vget_lane_any (v16qi, , ,__a, __b) |
| #define __aarch64_vgetq_lane_s16(__a, __b) \ |
| __aarch64_vget_lane_any (v8hi, , ,__a, __b) |
| #define __aarch64_vgetq_lane_s32(__a, __b) \ |
| __aarch64_vget_lane_any (v4si, , ,__a, __b) |
| #define __aarch64_vgetq_lane_s64(__a, __b) \ |
| __aarch64_vget_lane_any (v2di, , ,__a, __b) |
| |
| #define __aarch64_vgetq_lane_u8(__a, __b) \ |
| __aarch64_vget_lane_any (v16qi, (uint8_t), (int8x16_t), __a, __b) |
| #define __aarch64_vgetq_lane_u16(__a, __b) \ |
| __aarch64_vget_lane_any (v8hi, (uint16_t), (int16x8_t), __a, __b) |
| #define __aarch64_vgetq_lane_u32(__a, __b) \ |
| __aarch64_vget_lane_any (v4si, (uint32_t), (int32x4_t), __a, __b) |
| #define __aarch64_vgetq_lane_u64(__a, __b) \ |
| __aarch64_vget_lane_any (v2di, (uint64_t), (int64x2_t), __a, __b) |
| |
| /* __aarch64_vdup_lane internal macros. */ |
| #define __aarch64_vdup_lane_any(__size, __q1, __q2, __a, __b) \ |
| vdup##__q1##_n_##__size (__aarch64_vget##__q2##_lane_##__size (__a, __b)) |
| |
| #define __aarch64_vdup_lane_f32(__a, __b) \ |
| __aarch64_vdup_lane_any (f32, , , __a, __b) |
| #define __aarch64_vdup_lane_f64(__a, __b) (__a) |
| #define __aarch64_vdup_lane_p8(__a, __b) \ |
| __aarch64_vdup_lane_any (p8, , , __a, __b) |
| #define __aarch64_vdup_lane_p16(__a, __b) \ |
| __aarch64_vdup_lane_any (p16, , , __a, __b) |
| #define __aarch64_vdup_lane_s8(__a, __b) \ |
| __aarch64_vdup_lane_any (s8, , , __a, __b) |
| #define __aarch64_vdup_lane_s16(__a, __b) \ |
| __aarch64_vdup_lane_any (s16, , , __a, __b) |
| #define __aarch64_vdup_lane_s32(__a, __b) \ |
| __aarch64_vdup_lane_any (s32, , , __a, __b) |
| #define __aarch64_vdup_lane_s64(__a, __b) (__a) |
| #define __aarch64_vdup_lane_u8(__a, __b) \ |
| __aarch64_vdup_lane_any (u8, , , __a, __b) |
| #define __aarch64_vdup_lane_u16(__a, __b) \ |
| __aarch64_vdup_lane_any (u16, , , __a, __b) |
| #define __aarch64_vdup_lane_u32(__a, __b) \ |
| __aarch64_vdup_lane_any (u32, , , __a, __b) |
| #define __aarch64_vdup_lane_u64(__a, __b) (__a) |
| |
| /* __aarch64_vdup_laneq internal macros. */ |
| #define __aarch64_vdup_laneq_f32(__a, __b) \ |
| __aarch64_vdup_lane_any (f32, , q, __a, __b) |
| #define __aarch64_vdup_laneq_f64(__a, __b) \ |
| __aarch64_vdup_lane_any (f64, , q, __a, __b) |
| #define __aarch64_vdup_laneq_p8(__a, __b) \ |
| __aarch64_vdup_lane_any (p8, , q, __a, __b) |
| #define __aarch64_vdup_laneq_p16(__a, __b) \ |
| __aarch64_vdup_lane_any (p16, , q, __a, __b) |
| #define __aarch64_vdup_laneq_s8(__a, __b) \ |
| __aarch64_vdup_lane_any (s8, , q, __a, __b) |
| #define __aarch64_vdup_laneq_s16(__a, __b) \ |
| __aarch64_vdup_lane_any (s16, , q, __a, __b) |
| #define __aarch64_vdup_laneq_s32(__a, __b) \ |
| __aarch64_vdup_lane_any (s32, , q, __a, __b) |
| #define __aarch64_vdup_laneq_s64(__a, __b) \ |
| __aarch64_vdup_lane_any (s64, , q, __a, __b) |
| #define __aarch64_vdup_laneq_u8(__a, __b) \ |
| __aarch64_vdup_lane_any (u8, , q, __a, __b) |
| #define __aarch64_vdup_laneq_u16(__a, __b) \ |
| __aarch64_vdup_lane_any (u16, , q, __a, __b) |
| #define __aarch64_vdup_laneq_u32(__a, __b) \ |
| __aarch64_vdup_lane_any (u32, , q, __a, __b) |
| #define __aarch64_vdup_laneq_u64(__a, __b) \ |
| __aarch64_vdup_lane_any (u64, , q, __a, __b) |
| |
| /* __aarch64_vdupq_lane internal macros. */ |
| #define __aarch64_vdupq_lane_f32(__a, __b) \ |
| __aarch64_vdup_lane_any (f32, q, , __a, __b) |
| #define __aarch64_vdupq_lane_f64(__a, __b) (vdupq_n_f64 (__a)) |
| #define __aarch64_vdupq_lane_p8(__a, __b) \ |
| __aarch64_vdup_lane_any (p8, q, , __a, __b) |
| #define __aarch64_vdupq_lane_p16(__a, __b) \ |
| __aarch64_vdup_lane_any (p16, q, , __a, __b) |
| #define __aarch64_vdupq_lane_s8(__a, __b) \ |
| __aarch64_vdup_lane_any (s8, q, , __a, __b) |
| #define __aarch64_vdupq_lane_s16(__a, __b) \ |
| __aarch64_vdup_lane_any (s16, q, , __a, __b) |
| #define __aarch64_vdupq_lane_s32(__a, __b) \ |
| __aarch64_vdup_lane_any (s32, q, , __a, __b) |
| #define __aarch64_vdupq_lane_s64(__a, __b) (vdupq_n_s64 (__a)) |
| #define __aarch64_vdupq_lane_u8(__a, __b) \ |
| __aarch64_vdup_lane_any (u8, q, , __a, __b) |
| #define __aarch64_vdupq_lane_u16(__a, __b) \ |
| __aarch64_vdup_lane_any (u16, q, , __a, __b) |
| #define __aarch64_vdupq_lane_u32(__a, __b) \ |
| __aarch64_vdup_lane_any (u32, q, , __a, __b) |
| #define __aarch64_vdupq_lane_u64(__a, __b) (vdupq_n_u64 (__a)) |
| |
| /* __aarch64_vdupq_laneq internal macros. */ |
| #define __aarch64_vdupq_laneq_f32(__a, __b) \ |
| __aarch64_vdup_lane_any (f32, q, q, __a, __b) |
| #define __aarch64_vdupq_laneq_f64(__a, __b) \ |
| __aarch64_vdup_lane_any (f64, q, q, __a, __b) |
| #define __aarch64_vdupq_laneq_p8(__a, __b) \ |
| __aarch64_vdup_lane_any (p8, q, q, __a, __b) |
| #define __aarch64_vdupq_laneq_p16(__a, __b) \ |
| __aarch64_vdup_lane_any (p16, q, q, __a, __b) |
| #define __aarch64_vdupq_laneq_s8(__a, __b) \ |
| __aarch64_vdup_lane_any (s8, q, q, __a, __b) |
| #define __aarch64_vdupq_laneq_s16(__a, __b) \ |
| __aarch64_vdup_lane_any (s16, q, q, __a, __b) |
| #define __aarch64_vdupq_laneq_s32(__a, __b) \ |
| __aarch64_vdup_lane_any (s32, q, q, __a, __b) |
| #define __aarch64_vdupq_laneq_s64(__a, __b) \ |
| __aarch64_vdup_lane_any (s64, q, q, __a, __b) |
| #define __aarch64_vdupq_laneq_u8(__a, __b) \ |
| __aarch64_vdup_lane_any (u8, q, q, __a, __b) |
| #define __aarch64_vdupq_laneq_u16(__a, __b) \ |
| __aarch64_vdup_lane_any (u16, q, q, __a, __b) |
| #define __aarch64_vdupq_laneq_u32(__a, __b) \ |
| __aarch64_vdup_lane_any (u32, q, q, __a, __b) |
| #define __aarch64_vdupq_laneq_u64(__a, __b) \ |
| __aarch64_vdup_lane_any (u64, q, q, __a, __b) |
| |
| /* vadd */ |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vadd_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vadd_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vadd_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vadd_f32 (float32x2_t __a, float32x2_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline float64x1_t __attribute__ ((__always_inline__)) |
| vadd_f64 (float64x1_t __a, float64x1_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vadd_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vadd_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vadd_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vadd_s64 (int64x1_t __a, int64x1_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vadd_u64 (uint64x1_t __a, uint64x1_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vaddq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vaddq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vaddq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vaddq_s64 (int64x2_t __a, int64x2_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vaddq_f32 (float32x4_t __a, float32x4_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline float64x2_t __attribute__ ((__always_inline__)) |
| vaddq_f64 (float64x2_t __a, float64x2_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vaddq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vaddq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vaddq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vaddq_u64 (uint64x2_t __a, uint64x2_t __b) |
| { |
| return __a + __b; |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vaddl_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_saddlv8qi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vaddl_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_saddlv4hi (__a, __b); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vaddl_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return (int64x2_t) __builtin_aarch64_saddlv2si (__a, __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vaddl_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_uaddlv8qi ((int8x8_t) __a, |
| (int8x8_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vaddl_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_uaddlv4hi ((int16x4_t) __a, |
| (int16x4_t) __b); |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vaddl_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return (uint64x2_t) __builtin_aarch64_uaddlv2si ((int32x2_t) __a, |
| (int32x2_t) __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vaddl_high_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_saddl2v16qi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vaddl_high_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_saddl2v8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vaddl_high_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return (int64x2_t) __builtin_aarch64_saddl2v4si (__a, __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vaddl_high_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_uaddl2v16qi ((int8x16_t) __a, |
| (int8x16_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vaddl_high_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_uaddl2v8hi ((int16x8_t) __a, |
| (int16x8_t) __b); |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vaddl_high_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return (uint64x2_t) __builtin_aarch64_uaddl2v4si ((int32x4_t) __a, |
| (int32x4_t) __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vaddw_s8 (int16x8_t __a, int8x8_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_saddwv8qi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vaddw_s16 (int32x4_t __a, int16x4_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_saddwv4hi (__a, __b); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vaddw_s32 (int64x2_t __a, int32x2_t __b) |
| { |
| return (int64x2_t) __builtin_aarch64_saddwv2si (__a, __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vaddw_u8 (uint16x8_t __a, uint8x8_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_uaddwv8qi ((int16x8_t) __a, |
| (int8x8_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vaddw_u16 (uint32x4_t __a, uint16x4_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_uaddwv4hi ((int32x4_t) __a, |
| (int16x4_t) __b); |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vaddw_u32 (uint64x2_t __a, uint32x2_t __b) |
| { |
| return (uint64x2_t) __builtin_aarch64_uaddwv2si ((int64x2_t) __a, |
| (int32x2_t) __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vaddw_high_s8 (int16x8_t __a, int8x16_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_saddw2v16qi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vaddw_high_s16 (int32x4_t __a, int16x8_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_saddw2v8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vaddw_high_s32 (int64x2_t __a, int32x4_t __b) |
| { |
| return (int64x2_t) __builtin_aarch64_saddw2v4si (__a, __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vaddw_high_u8 (uint16x8_t __a, uint8x16_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_uaddw2v16qi ((int16x8_t) __a, |
| (int8x16_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vaddw_high_u16 (uint32x4_t __a, uint16x8_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_uaddw2v8hi ((int32x4_t) __a, |
| (int16x8_t) __b); |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vaddw_high_u32 (uint64x2_t __a, uint32x4_t __b) |
| { |
| return (uint64x2_t) __builtin_aarch64_uaddw2v4si ((int64x2_t) __a, |
| (int32x4_t) __b); |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vhadd_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return (int8x8_t) __builtin_aarch64_shaddv8qi (__a, __b); |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vhadd_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return (int16x4_t) __builtin_aarch64_shaddv4hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vhadd_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return (int32x2_t) __builtin_aarch64_shaddv2si (__a, __b); |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vhadd_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return (uint8x8_t) __builtin_aarch64_uhaddv8qi ((int8x8_t) __a, |
| (int8x8_t) __b); |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vhadd_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return (uint16x4_t) __builtin_aarch64_uhaddv4hi ((int16x4_t) __a, |
| (int16x4_t) __b); |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vhadd_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return (uint32x2_t) __builtin_aarch64_uhaddv2si ((int32x2_t) __a, |
| (int32x2_t) __b); |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vhaddq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return (int8x16_t) __builtin_aarch64_shaddv16qi (__a, __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vhaddq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_shaddv8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vhaddq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_shaddv4si (__a, __b); |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vhaddq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return (uint8x16_t) __builtin_aarch64_uhaddv16qi ((int8x16_t) __a, |
| (int8x16_t) __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vhaddq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_uhaddv8hi ((int16x8_t) __a, |
| (int16x8_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vhaddq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_uhaddv4si ((int32x4_t) __a, |
| (int32x4_t) __b); |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vrhadd_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return (int8x8_t) __builtin_aarch64_srhaddv8qi (__a, __b); |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vrhadd_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return (int16x4_t) __builtin_aarch64_srhaddv4hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vrhadd_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return (int32x2_t) __builtin_aarch64_srhaddv2si (__a, __b); |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vrhadd_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return (uint8x8_t) __builtin_aarch64_urhaddv8qi ((int8x8_t) __a, |
| (int8x8_t) __b); |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vrhadd_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return (uint16x4_t) __builtin_aarch64_urhaddv4hi ((int16x4_t) __a, |
| (int16x4_t) __b); |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vrhadd_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return (uint32x2_t) __builtin_aarch64_urhaddv2si ((int32x2_t) __a, |
| (int32x2_t) __b); |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vrhaddq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return (int8x16_t) __builtin_aarch64_srhaddv16qi (__a, __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vrhaddq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_srhaddv8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vrhaddq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_srhaddv4si (__a, __b); |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vrhaddq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return (uint8x16_t) __builtin_aarch64_urhaddv16qi ((int8x16_t) __a, |
| (int8x16_t) __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vrhaddq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_urhaddv8hi ((int16x8_t) __a, |
| (int16x8_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vrhaddq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_urhaddv4si ((int32x4_t) __a, |
| (int32x4_t) __b); |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vaddhn_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return (int8x8_t) __builtin_aarch64_addhnv8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vaddhn_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return (int16x4_t) __builtin_aarch64_addhnv4si (__a, __b); |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vaddhn_s64 (int64x2_t __a, int64x2_t __b) |
| { |
| return (int32x2_t) __builtin_aarch64_addhnv2di (__a, __b); |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vaddhn_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return (uint8x8_t) __builtin_aarch64_addhnv8hi ((int16x8_t) __a, |
| (int16x8_t) __b); |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vaddhn_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return (uint16x4_t) __builtin_aarch64_addhnv4si ((int32x4_t) __a, |
| (int32x4_t) __b); |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vaddhn_u64 (uint64x2_t __a, uint64x2_t __b) |
| { |
| return (uint32x2_t) __builtin_aarch64_addhnv2di ((int64x2_t) __a, |
| (int64x2_t) __b); |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vraddhn_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return (int8x8_t) __builtin_aarch64_raddhnv8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vraddhn_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return (int16x4_t) __builtin_aarch64_raddhnv4si (__a, __b); |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vraddhn_s64 (int64x2_t __a, int64x2_t __b) |
| { |
| return (int32x2_t) __builtin_aarch64_raddhnv2di (__a, __b); |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vraddhn_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return (uint8x8_t) __builtin_aarch64_raddhnv8hi ((int16x8_t) __a, |
| (int16x8_t) __b); |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vraddhn_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return (uint16x4_t) __builtin_aarch64_raddhnv4si ((int32x4_t) __a, |
| (int32x4_t) __b); |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vraddhn_u64 (uint64x2_t __a, uint64x2_t __b) |
| { |
| return (uint32x2_t) __builtin_aarch64_raddhnv2di ((int64x2_t) __a, |
| (int64x2_t) __b); |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vaddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c) |
| { |
| return (int8x16_t) __builtin_aarch64_addhn2v8hi (__a, __b, __c); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vaddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c) |
| { |
| return (int16x8_t) __builtin_aarch64_addhn2v4si (__a, __b, __c); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vaddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c) |
| { |
| return (int32x4_t) __builtin_aarch64_addhn2v2di (__a, __b, __c); |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vaddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c) |
| { |
| return (uint8x16_t) __builtin_aarch64_addhn2v8hi ((int8x8_t) __a, |
| (int16x8_t) __b, |
| (int16x8_t) __c); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vaddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c) |
| { |
| return (uint16x8_t) __builtin_aarch64_addhn2v4si ((int16x4_t) __a, |
| (int32x4_t) __b, |
| (int32x4_t) __c); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vaddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c) |
| { |
| return (uint32x4_t) __builtin_aarch64_addhn2v2di ((int32x2_t) __a, |
| (int64x2_t) __b, |
| (int64x2_t) __c); |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vraddhn_high_s16 (int8x8_t __a, int16x8_t __b, int16x8_t __c) |
| { |
| return (int8x16_t) __builtin_aarch64_raddhn2v8hi (__a, __b, __c); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vraddhn_high_s32 (int16x4_t __a, int32x4_t __b, int32x4_t __c) |
| { |
| return (int16x8_t) __builtin_aarch64_raddhn2v4si (__a, __b, __c); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vraddhn_high_s64 (int32x2_t __a, int64x2_t __b, int64x2_t __c) |
| { |
| return (int32x4_t) __builtin_aarch64_raddhn2v2di (__a, __b, __c); |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vraddhn_high_u16 (uint8x8_t __a, uint16x8_t __b, uint16x8_t __c) |
| { |
| return (uint8x16_t) __builtin_aarch64_raddhn2v8hi ((int8x8_t) __a, |
| (int16x8_t) __b, |
| (int16x8_t) __c); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vraddhn_high_u32 (uint16x4_t __a, uint32x4_t __b, uint32x4_t __c) |
| { |
| return (uint16x8_t) __builtin_aarch64_raddhn2v4si ((int16x4_t) __a, |
| (int32x4_t) __b, |
| (int32x4_t) __c); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vraddhn_high_u64 (uint32x2_t __a, uint64x2_t __b, uint64x2_t __c) |
| { |
| return (uint32x4_t) __builtin_aarch64_raddhn2v2di ((int32x2_t) __a, |
| (int64x2_t) __b, |
| (int64x2_t) __c); |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vdiv_f32 (float32x2_t __a, float32x2_t __b) |
| { |
| return __a / __b; |
| } |
| |
| __extension__ static __inline float64x1_t __attribute__ ((__always_inline__)) |
| vdiv_f64 (float64x1_t __a, float64x1_t __b) |
| { |
| return __a / __b; |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vdivq_f32 (float32x4_t __a, float32x4_t __b) |
| { |
| return __a / __b; |
| } |
| |
| __extension__ static __inline float64x2_t __attribute__ ((__always_inline__)) |
| vdivq_f64 (float64x2_t __a, float64x2_t __b) |
| { |
| return __a / __b; |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vmul_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vmul_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vmul_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vmul_f32 (float32x2_t __a, float32x2_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vmul_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vmul_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vmul_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vmul_p8 (poly8x8_t __a, poly8x8_t __b) |
| { |
| return (poly8x8_t) __builtin_aarch64_pmulv8qi ((int8x8_t) __a, |
| (int8x8_t) __b); |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vmulq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vmulq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vmulq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vmulq_f32 (float32x4_t __a, float32x4_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline float64x2_t __attribute__ ((__always_inline__)) |
| vmulq_f64 (float64x2_t __a, float64x2_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vmulq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vmulq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vmulq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return __a * __b; |
| } |
| |
| __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) |
| vmulq_p8 (poly8x16_t __a, poly8x16_t __b) |
| { |
| return (poly8x16_t) __builtin_aarch64_pmulv16qi ((int8x16_t) __a, |
| (int8x16_t) __b); |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vand_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vand_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vand_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vand_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vand_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vand_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vand_s64 (int64x1_t __a, int64x1_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vand_u64 (uint64x1_t __a, uint64x1_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vandq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vandq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vandq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vandq_s64 (int64x2_t __a, int64x2_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vandq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vandq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vandq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vandq_u64 (uint64x2_t __a, uint64x2_t __b) |
| { |
| return __a & __b; |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vorr_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vorr_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vorr_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vorr_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vorr_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vorr_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vorr_s64 (int64x1_t __a, int64x1_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vorr_u64 (uint64x1_t __a, uint64x1_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vorrq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vorrq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vorrq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vorrq_s64 (int64x2_t __a, int64x2_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vorrq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vorrq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vorrq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vorrq_u64 (uint64x2_t __a, uint64x2_t __b) |
| { |
| return __a | __b; |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| veor_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| veor_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| veor_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| veor_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| veor_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| veor_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| veor_s64 (int64x1_t __a, int64x1_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| veor_u64 (uint64x1_t __a, uint64x1_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| veorq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| veorq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| veorq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| veorq_s64 (int64x2_t __a, int64x2_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| veorq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| veorq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| veorq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| veorq_u64 (uint64x2_t __a, uint64x2_t __b) |
| { |
| return __a ^ __b; |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vbic_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vbic_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vbic_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vbic_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vbic_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vbic_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vbic_s64 (int64x1_t __a, int64x1_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vbic_u64 (uint64x1_t __a, uint64x1_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vbicq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vbicq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vbicq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vbicq_s64 (int64x2_t __a, int64x2_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vbicq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vbicq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vbicq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vbicq_u64 (uint64x2_t __a, uint64x2_t __b) |
| { |
| return __a & ~__b; |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vorn_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vorn_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vorn_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vorn_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vorn_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vorn_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vorn_s64 (int64x1_t __a, int64x1_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vorn_u64 (uint64x1_t __a, uint64x1_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vornq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vornq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vornq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vornq_s64 (int64x2_t __a, int64x2_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vornq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vornq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vornq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vornq_u64 (uint64x2_t __a, uint64x2_t __b) |
| { |
| return __a | ~__b; |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vsub_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vsub_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vsub_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vsub_f32 (float32x2_t __a, float32x2_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline float64x1_t __attribute__ ((__always_inline__)) |
| vsub_f64 (float64x1_t __a, float64x1_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vsub_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vsub_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vsub_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vsub_s64 (int64x1_t __a, int64x1_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vsub_u64 (uint64x1_t __a, uint64x1_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vsubq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vsubq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vsubq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vsubq_s64 (int64x2_t __a, int64x2_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vsubq_f32 (float32x4_t __a, float32x4_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline float64x2_t __attribute__ ((__always_inline__)) |
| vsubq_f64 (float64x2_t __a, float64x2_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vsubq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vsubq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vsubq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vsubq_u64 (uint64x2_t __a, uint64x2_t __b) |
| { |
| return __a - __b; |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vsubl_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_ssublv8qi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vsubl_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_ssublv4hi (__a, __b); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vsubl_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return (int64x2_t) __builtin_aarch64_ssublv2si (__a, __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vsubl_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_usublv8qi ((int8x8_t) __a, |
| (int8x8_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vsubl_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_usublv4hi ((int16x4_t) __a, |
| (int16x4_t) __b); |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vsubl_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return (uint64x2_t) __builtin_aarch64_usublv2si ((int32x2_t) __a, |
| (int32x2_t) __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vsubl_high_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_ssubl2v16qi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vsubl_high_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_ssubl2v8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vsubl_high_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return (int64x2_t) __builtin_aarch64_ssubl2v4si (__a, __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vsubl_high_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_usubl2v16qi ((int8x16_t) __a, |
| (int8x16_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vsubl_high_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_usubl2v8hi ((int16x8_t) __a, |
| (int16x8_t) __b); |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vsubl_high_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return (uint64x2_t) __builtin_aarch64_usubl2v4si ((int32x4_t) __a, |
| (int32x4_t) __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vsubw_s8 (int16x8_t __a, int8x8_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_ssubwv8qi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vsubw_s16 (int32x4_t __a, int16x4_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_ssubwv4hi (__a, __b); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vsubw_s32 (int64x2_t __a, int32x2_t __b) |
| { |
| return (int64x2_t) __builtin_aarch64_ssubwv2si (__a, __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vsubw_u8 (uint16x8_t __a, uint8x8_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_usubwv8qi ((int16x8_t) __a, |
| (int8x8_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vsubw_u16 (uint32x4_t __a, uint16x4_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_usubwv4hi ((int32x4_t) __a, |
| (int16x4_t) __b); |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vsubw_u32 (uint64x2_t __a, uint32x2_t __b) |
| { |
| return (uint64x2_t) __builtin_aarch64_usubwv2si ((int64x2_t) __a, |
| (int32x2_t) __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vsubw_high_s8 (int16x8_t __a, int8x16_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_ssubw2v16qi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vsubw_high_s16 (int32x4_t __a, int16x8_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_ssubw2v8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vsubw_high_s32 (int64x2_t __a, int32x4_t __b) |
| { |
| return (int64x2_t) __builtin_aarch64_ssubw2v4si (__a, __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vsubw_high_u8 (uint16x8_t __a, uint8x16_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_usubw2v16qi ((int16x8_t) __a, |
| (int8x16_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vsubw_high_u16 (uint32x4_t __a, uint16x8_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_usubw2v8hi ((int32x4_t) __a, |
| (int16x8_t) __b); |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vsubw_high_u32 (uint64x2_t __a, uint32x4_t __b) |
| { |
| return (uint64x2_t) __builtin_aarch64_usubw2v4si ((int64x2_t) __a, |
| (int32x4_t) __b); |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vqadd_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return (int8x8_t) __builtin_aarch64_sqaddv8qi (__a, __b); |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vqadd_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return (int16x4_t) __builtin_aarch64_sqaddv4hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vqadd_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return (int32x2_t) __builtin_aarch64_sqaddv2si (__a, __b); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vqadd_s64 (int64x1_t __a, int64x1_t __b) |
| { |
| return (int64x1_t) __builtin_aarch64_sqadddi (__a, __b); |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vqadd_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return (uint8x8_t) __builtin_aarch64_uqaddv8qi ((int8x8_t) __a, |
| (int8x8_t) __b); |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vqadd_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return (uint16x4_t) __builtin_aarch64_uqaddv4hi ((int16x4_t) __a, |
| (int16x4_t) __b); |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vqadd_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return (uint32x2_t) __builtin_aarch64_uqaddv2si ((int32x2_t) __a, |
| (int32x2_t) __b); |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vqadd_u64 (uint64x1_t __a, uint64x1_t __b) |
| { |
| return (uint64x1_t) __builtin_aarch64_uqadddi ((int64x1_t) __a, |
| (int64x1_t) __b); |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vqaddq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return (int8x16_t) __builtin_aarch64_sqaddv16qi (__a, __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vqaddq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_sqaddv8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vqaddq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_sqaddv4si (__a, __b); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vqaddq_s64 (int64x2_t __a, int64x2_t __b) |
| { |
| return (int64x2_t) __builtin_aarch64_sqaddv2di (__a, __b); |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vqaddq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return (uint8x16_t) __builtin_aarch64_uqaddv16qi ((int8x16_t) __a, |
| (int8x16_t) __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vqaddq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_uqaddv8hi ((int16x8_t) __a, |
| (int16x8_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vqaddq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_uqaddv4si ((int32x4_t) __a, |
| (int32x4_t) __b); |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vqaddq_u64 (uint64x2_t __a, uint64x2_t __b) |
| { |
| return (uint64x2_t) __builtin_aarch64_uqaddv2di ((int64x2_t) __a, |
| (int64x2_t) __b); |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vqsub_s8 (int8x8_t __a, int8x8_t __b) |
| { |
| return (int8x8_t) __builtin_aarch64_sqsubv8qi (__a, __b); |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vqsub_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return (int16x4_t) __builtin_aarch64_sqsubv4hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vqsub_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return (int32x2_t) __builtin_aarch64_sqsubv2si (__a, __b); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vqsub_s64 (int64x1_t __a, int64x1_t __b) |
| { |
| return (int64x1_t) __builtin_aarch64_sqsubdi (__a, __b); |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vqsub_u8 (uint8x8_t __a, uint8x8_t __b) |
| { |
| return (uint8x8_t) __builtin_aarch64_uqsubv8qi ((int8x8_t) __a, |
| (int8x8_t) __b); |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vqsub_u16 (uint16x4_t __a, uint16x4_t __b) |
| { |
| return (uint16x4_t) __builtin_aarch64_uqsubv4hi ((int16x4_t) __a, |
| (int16x4_t) __b); |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vqsub_u32 (uint32x2_t __a, uint32x2_t __b) |
| { |
| return (uint32x2_t) __builtin_aarch64_uqsubv2si ((int32x2_t) __a, |
| (int32x2_t) __b); |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vqsub_u64 (uint64x1_t __a, uint64x1_t __b) |
| { |
| return (uint64x1_t) __builtin_aarch64_uqsubdi ((int64x1_t) __a, |
| (int64x1_t) __b); |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vqsubq_s8 (int8x16_t __a, int8x16_t __b) |
| { |
| return (int8x16_t) __builtin_aarch64_sqsubv16qi (__a, __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vqsubq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_sqsubv8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vqsubq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_sqsubv4si (__a, __b); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vqsubq_s64 (int64x2_t __a, int64x2_t __b) |
| { |
| return (int64x2_t) __builtin_aarch64_sqsubv2di (__a, __b); |
| } |
| |
| __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__)) |
| vqsubq_u8 (uint8x16_t __a, uint8x16_t __b) |
| { |
| return (uint8x16_t) __builtin_aarch64_uqsubv16qi ((int8x16_t) __a, |
| (int8x16_t) __b); |
| } |
| |
| __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__)) |
| vqsubq_u16 (uint16x8_t __a, uint16x8_t __b) |
| { |
| return (uint16x8_t) __builtin_aarch64_uqsubv8hi ((int16x8_t) __a, |
| (int16x8_t) __b); |
| } |
| |
| __extension__ static __inline uint32x4_t __attribute__ ((__always_inline__)) |
| vqsubq_u32 (uint32x4_t __a, uint32x4_t __b) |
| { |
| return (uint32x4_t) __builtin_aarch64_uqsubv4si ((int32x4_t) __a, |
| (int32x4_t) __b); |
| } |
| |
| __extension__ static __inline uint64x2_t __attribute__ ((__always_inline__)) |
| vqsubq_u64 (uint64x2_t __a, uint64x2_t __b) |
| { |
| return (uint64x2_t) __builtin_aarch64_uqsubv2di ((int64x2_t) __a, |
| (int64x2_t) __b); |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vqneg_s8 (int8x8_t __a) |
| { |
| return (int8x8_t) __builtin_aarch64_sqnegv8qi (__a); |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vqneg_s16 (int16x4_t __a) |
| { |
| return (int16x4_t) __builtin_aarch64_sqnegv4hi (__a); |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vqneg_s32 (int32x2_t __a) |
| { |
| return (int32x2_t) __builtin_aarch64_sqnegv2si (__a); |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vqnegq_s8 (int8x16_t __a) |
| { |
| return (int8x16_t) __builtin_aarch64_sqnegv16qi (__a); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vqnegq_s16 (int16x8_t __a) |
| { |
| return (int16x8_t) __builtin_aarch64_sqnegv8hi (__a); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vqnegq_s32 (int32x4_t __a) |
| { |
| return (int32x4_t) __builtin_aarch64_sqnegv4si (__a); |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vqabs_s8 (int8x8_t __a) |
| { |
| return (int8x8_t) __builtin_aarch64_sqabsv8qi (__a); |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vqabs_s16 (int16x4_t __a) |
| { |
| return (int16x4_t) __builtin_aarch64_sqabsv4hi (__a); |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vqabs_s32 (int32x2_t __a) |
| { |
| return (int32x2_t) __builtin_aarch64_sqabsv2si (__a); |
| } |
| |
| __extension__ static __inline int8x16_t __attribute__ ((__always_inline__)) |
| vqabsq_s8 (int8x16_t __a) |
| { |
| return (int8x16_t) __builtin_aarch64_sqabsv16qi (__a); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vqabsq_s16 (int16x8_t __a) |
| { |
| return (int16x8_t) __builtin_aarch64_sqabsv8hi (__a); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vqabsq_s32 (int32x4_t __a) |
| { |
| return (int32x4_t) __builtin_aarch64_sqabsv4si (__a); |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vqdmulh_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return (int16x4_t) __builtin_aarch64_sqdmulhv4hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vqdmulh_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return (int32x2_t) __builtin_aarch64_sqdmulhv2si (__a, __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vqdmulhq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_sqdmulhv8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vqdmulhq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_sqdmulhv4si (__a, __b); |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vqrdmulh_s16 (int16x4_t __a, int16x4_t __b) |
| { |
| return (int16x4_t) __builtin_aarch64_sqrdmulhv4hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vqrdmulh_s32 (int32x2_t __a, int32x2_t __b) |
| { |
| return (int32x2_t) __builtin_aarch64_sqrdmulhv2si (__a, __b); |
| } |
| |
| __extension__ static __inline int16x8_t __attribute__ ((__always_inline__)) |
| vqrdmulhq_s16 (int16x8_t __a, int16x8_t __b) |
| { |
| return (int16x8_t) __builtin_aarch64_sqrdmulhv8hi (__a, __b); |
| } |
| |
| __extension__ static __inline int32x4_t __attribute__ ((__always_inline__)) |
| vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b) |
| { |
| return (int32x4_t) __builtin_aarch64_sqrdmulhv4si (__a, __b); |
| } |
| |
| __extension__ static __inline int8x8_t __attribute__ ((__always_inline__)) |
| vcreate_s8 (uint64_t __a) |
| { |
| return (int8x8_t) __a; |
| } |
| |
| __extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) |
| vcreate_s16 (uint64_t __a) |
| { |
| return (int16x4_t) __a; |
| } |
| |
| __extension__ static __inline int32x2_t __attribute__ ((__always_inline__)) |
| vcreate_s32 (uint64_t __a) |
| { |
| return (int32x2_t) __a; |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vcreate_s64 (uint64_t __a) |
| { |
| return (int64x1_t) __a; |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vcreate_f32 (uint64_t __a) |
| { |
| return (float32x2_t) __a; |
| } |
| |
| __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__)) |
| vcreate_u8 (uint64_t __a) |
| { |
| return (uint8x8_t) __a; |
| } |
| |
| __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__)) |
| vcreate_u16 (uint64_t __a) |
| { |
| return (uint16x4_t) __a; |
| } |
| |
| __extension__ static __inline uint32x2_t __attribute__ ((__always_inline__)) |
| vcreate_u32 (uint64_t __a) |
| { |
| return (uint32x2_t) __a; |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vcreate_u64 (uint64_t __a) |
| { |
| return (uint64x1_t) __a; |
| } |
| |
| __extension__ static __inline float64x1_t __attribute__ ((__always_inline__)) |
| vcreate_f64 (uint64_t __a) |
| { |
| return (float64x1_t) __builtin_aarch64_createdf (__a); |
| } |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vcreate_p8 (uint64_t __a) |
| { |
| return (poly8x8_t) __a; |
| } |
| |
| __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) |
| vcreate_p16 (uint64_t __a) |
| { |
| return (poly16x4_t) __a; |
| } |
| |
| /* vget_lane */ |
| |
| __extension__ static __inline float32_t __attribute__ ((__always_inline__)) |
| vget_lane_f32 (float32x2_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_f32 (__a, __b); |
| } |
| |
| __extension__ static __inline float64_t __attribute__ ((__always_inline__)) |
| vget_lane_f64 (float64x1_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_f64 (__a, __b); |
| } |
| |
| __extension__ static __inline poly8_t __attribute__ ((__always_inline__)) |
| vget_lane_p8 (poly8x8_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_p8 (__a, __b); |
| } |
| |
| __extension__ static __inline poly16_t __attribute__ ((__always_inline__)) |
| vget_lane_p16 (poly16x4_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_p16 (__a, __b); |
| } |
| |
| __extension__ static __inline int8_t __attribute__ ((__always_inline__)) |
| vget_lane_s8 (int8x8_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_s8 (__a, __b); |
| } |
| |
| __extension__ static __inline int16_t __attribute__ ((__always_inline__)) |
| vget_lane_s16 (int16x4_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_s16 (__a, __b); |
| } |
| |
| __extension__ static __inline int32_t __attribute__ ((__always_inline__)) |
| vget_lane_s32 (int32x2_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_s32 (__a, __b); |
| } |
| |
| __extension__ static __inline int64_t __attribute__ ((__always_inline__)) |
| vget_lane_s64 (int64x1_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_s64 (__a, __b); |
| } |
| |
| __extension__ static __inline uint8_t __attribute__ ((__always_inline__)) |
| vget_lane_u8 (uint8x8_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_u8 (__a, __b); |
| } |
| |
| __extension__ static __inline uint16_t __attribute__ ((__always_inline__)) |
| vget_lane_u16 (uint16x4_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_u16 (__a, __b); |
| } |
| |
| __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) |
| vget_lane_u32 (uint32x2_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_u32 (__a, __b); |
| } |
| |
| __extension__ static __inline uint64_t __attribute__ ((__always_inline__)) |
| vget_lane_u64 (uint64x1_t __a, const int __b) |
| { |
| return __aarch64_vget_lane_u64 (__a, __b); |
| } |
| |
| /* vgetq_lane */ |
| |
| __extension__ static __inline float32_t __attribute__ ((__always_inline__)) |
| vgetq_lane_f32 (float32x4_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_f32 (__a, __b); |
| } |
| |
| __extension__ static __inline float64_t __attribute__ ((__always_inline__)) |
| vgetq_lane_f64 (float64x2_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_f64 (__a, __b); |
| } |
| |
| __extension__ static __inline poly8_t __attribute__ ((__always_inline__)) |
| vgetq_lane_p8 (poly8x16_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_p8 (__a, __b); |
| } |
| |
| __extension__ static __inline poly16_t __attribute__ ((__always_inline__)) |
| vgetq_lane_p16 (poly16x8_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_p16 (__a, __b); |
| } |
| |
| __extension__ static __inline int8_t __attribute__ ((__always_inline__)) |
| vgetq_lane_s8 (int8x16_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_s8 (__a, __b); |
| } |
| |
| __extension__ static __inline int16_t __attribute__ ((__always_inline__)) |
| vgetq_lane_s16 (int16x8_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_s16 (__a, __b); |
| } |
| |
| __extension__ static __inline int32_t __attribute__ ((__always_inline__)) |
| vgetq_lane_s32 (int32x4_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_s32 (__a, __b); |
| } |
| |
| __extension__ static __inline int64_t __attribute__ ((__always_inline__)) |
| vgetq_lane_s64 (int64x2_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_s64 (__a, __b); |
| } |
| |
| __extension__ static __inline uint8_t __attribute__ ((__always_inline__)) |
| vgetq_lane_u8 (uint8x16_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_u8 (__a, __b); |
| } |
| |
| __extension__ static __inline uint16_t __attribute__ ((__always_inline__)) |
| vgetq_lane_u16 (uint16x8_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_u16 (__a, __b); |
| } |
| |
| __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) |
| vgetq_lane_u32 (uint32x4_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_u32 (__a, __b); |
| } |
| |
| __extension__ static __inline uint64_t __attribute__ ((__always_inline__)) |
| vgetq_lane_u64 (uint64x2_t __a, const int __b) |
| { |
| return __aarch64_vgetq_lane_u64 (__a, __b); |
| } |
| |
| /* vreinterpret */ |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vreinterpret_p8_s8 (int8x8_t __a) |
| { |
| return (poly8x8_t) __builtin_aarch64_reinterpretv8qiv8qi (__a); |
| } |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vreinterpret_p8_s16 (int16x4_t __a) |
| { |
| return (poly8x8_t) __builtin_aarch64_reinterpretv8qiv4hi (__a); |
| } |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vreinterpret_p8_s32 (int32x2_t __a) |
| { |
| return (poly8x8_t) __builtin_aarch64_reinterpretv8qiv2si (__a); |
| } |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vreinterpret_p8_s64 (int64x1_t __a) |
| { |
| return (poly8x8_t) __builtin_aarch64_reinterpretv8qidi (__a); |
| } |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vreinterpret_p8_f32 (float32x2_t __a) |
| { |
| return (poly8x8_t) __builtin_aarch64_reinterpretv8qiv2sf (__a); |
| } |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vreinterpret_p8_u8 (uint8x8_t __a) |
| { |
| return (poly8x8_t) __builtin_aarch64_reinterpretv8qiv8qi ((int8x8_t) __a); |
| } |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vreinterpret_p8_u16 (uint16x4_t __a) |
| { |
| return (poly8x8_t) __builtin_aarch64_reinterpretv8qiv4hi ((int16x4_t) __a); |
| } |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vreinterpret_p8_u32 (uint32x2_t __a) |
| { |
| return (poly8x8_t) __builtin_aarch64_reinterpretv8qiv2si ((int32x2_t) __a); |
| } |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vreinterpret_p8_u64 (uint64x1_t __a) |
| { |
| return (poly8x8_t) __builtin_aarch64_reinterpretv8qidi ((int64x1_t) __a); |
| } |
| |
| __extension__ static __inline poly8x8_t __attribute__ ((__always_inline__)) |
| vreinterpret_p8_p16 (poly16x4_t __a) |
| { |
| return (poly8x8_t) __builtin_aarch64_reinterpretv8qiv4hi ((int16x4_t) __a); |
| } |
| |
| __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p8_s8 (int8x16_t __a) |
| { |
| return (poly8x16_t) __builtin_aarch64_reinterpretv16qiv16qi (__a); |
| } |
| |
| __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p8_s16 (int16x8_t __a) |
| { |
| return (poly8x16_t) __builtin_aarch64_reinterpretv16qiv8hi (__a); |
| } |
| |
| __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p8_s32 (int32x4_t __a) |
| { |
| return (poly8x16_t) __builtin_aarch64_reinterpretv16qiv4si (__a); |
| } |
| |
| __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p8_s64 (int64x2_t __a) |
| { |
| return (poly8x16_t) __builtin_aarch64_reinterpretv16qiv2di (__a); |
| } |
| |
| __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p8_f32 (float32x4_t __a) |
| { |
| return (poly8x16_t) __builtin_aarch64_reinterpretv16qiv4sf (__a); |
| } |
| |
| __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p8_u8 (uint8x16_t __a) |
| { |
| return (poly8x16_t) __builtin_aarch64_reinterpretv16qiv16qi ((int8x16_t) |
| __a); |
| } |
| |
| __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p8_u16 (uint16x8_t __a) |
| { |
| return (poly8x16_t) __builtin_aarch64_reinterpretv16qiv8hi ((int16x8_t) |
| __a); |
| } |
| |
| __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p8_u32 (uint32x4_t __a) |
| { |
| return (poly8x16_t) __builtin_aarch64_reinterpretv16qiv4si ((int32x4_t) |
| __a); |
| } |
| |
| __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p8_u64 (uint64x2_t __a) |
| { |
| return (poly8x16_t) __builtin_aarch64_reinterpretv16qiv2di ((int64x2_t) |
| __a); |
| } |
| |
| __extension__ static __inline poly8x16_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p8_p16 (poly16x8_t __a) |
| { |
| return (poly8x16_t) __builtin_aarch64_reinterpretv16qiv8hi ((int16x8_t) |
| __a); |
| } |
| |
| __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) |
| vreinterpret_p16_s8 (int8x8_t __a) |
| { |
| return (poly16x4_t) __builtin_aarch64_reinterpretv4hiv8qi (__a); |
| } |
| |
| __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) |
| vreinterpret_p16_s16 (int16x4_t __a) |
| { |
| return (poly16x4_t) __builtin_aarch64_reinterpretv4hiv4hi (__a); |
| } |
| |
| __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) |
| vreinterpret_p16_s32 (int32x2_t __a) |
| { |
| return (poly16x4_t) __builtin_aarch64_reinterpretv4hiv2si (__a); |
| } |
| |
| __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) |
| vreinterpret_p16_s64 (int64x1_t __a) |
| { |
| return (poly16x4_t) __builtin_aarch64_reinterpretv4hidi (__a); |
| } |
| |
| __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) |
| vreinterpret_p16_f32 (float32x2_t __a) |
| { |
| return (poly16x4_t) __builtin_aarch64_reinterpretv4hiv2sf (__a); |
| } |
| |
| __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) |
| vreinterpret_p16_u8 (uint8x8_t __a) |
| { |
| return (poly16x4_t) __builtin_aarch64_reinterpretv4hiv8qi ((int8x8_t) __a); |
| } |
| |
| __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) |
| vreinterpret_p16_u16 (uint16x4_t __a) |
| { |
| return (poly16x4_t) __builtin_aarch64_reinterpretv4hiv4hi ((int16x4_t) __a); |
| } |
| |
| __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) |
| vreinterpret_p16_u32 (uint32x2_t __a) |
| { |
| return (poly16x4_t) __builtin_aarch64_reinterpretv4hiv2si ((int32x2_t) __a); |
| } |
| |
| __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) |
| vreinterpret_p16_u64 (uint64x1_t __a) |
| { |
| return (poly16x4_t) __builtin_aarch64_reinterpretv4hidi ((int64x1_t) __a); |
| } |
| |
| __extension__ static __inline poly16x4_t __attribute__ ((__always_inline__)) |
| vreinterpret_p16_p8 (poly8x8_t __a) |
| { |
| return (poly16x4_t) __builtin_aarch64_reinterpretv4hiv8qi ((int8x8_t) __a); |
| } |
| |
| __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p16_s8 (int8x16_t __a) |
| { |
| return (poly16x8_t) __builtin_aarch64_reinterpretv8hiv16qi (__a); |
| } |
| |
| __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p16_s16 (int16x8_t __a) |
| { |
| return (poly16x8_t) __builtin_aarch64_reinterpretv8hiv8hi (__a); |
| } |
| |
| __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p16_s32 (int32x4_t __a) |
| { |
| return (poly16x8_t) __builtin_aarch64_reinterpretv8hiv4si (__a); |
| } |
| |
| __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p16_s64 (int64x2_t __a) |
| { |
| return (poly16x8_t) __builtin_aarch64_reinterpretv8hiv2di (__a); |
| } |
| |
| __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p16_f32 (float32x4_t __a) |
| { |
| return (poly16x8_t) __builtin_aarch64_reinterpretv8hiv4sf (__a); |
| } |
| |
| __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p16_u8 (uint8x16_t __a) |
| { |
| return (poly16x8_t) __builtin_aarch64_reinterpretv8hiv16qi ((int8x16_t) |
| __a); |
| } |
| |
| __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p16_u16 (uint16x8_t __a) |
| { |
| return (poly16x8_t) __builtin_aarch64_reinterpretv8hiv8hi ((int16x8_t) __a); |
| } |
| |
| __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p16_u32 (uint32x4_t __a) |
| { |
| return (poly16x8_t) __builtin_aarch64_reinterpretv8hiv4si ((int32x4_t) __a); |
| } |
| |
| __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p16_u64 (uint64x2_t __a) |
| { |
| return (poly16x8_t) __builtin_aarch64_reinterpretv8hiv2di ((int64x2_t) __a); |
| } |
| |
| __extension__ static __inline poly16x8_t __attribute__ ((__always_inline__)) |
| vreinterpretq_p16_p8 (poly8x16_t __a) |
| { |
| return (poly16x8_t) __builtin_aarch64_reinterpretv8hiv16qi ((int8x16_t) |
| __a); |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vreinterpret_f32_s8 (int8x8_t __a) |
| { |
| return (float32x2_t) __builtin_aarch64_reinterpretv2sfv8qi (__a); |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vreinterpret_f32_s16 (int16x4_t __a) |
| { |
| return (float32x2_t) __builtin_aarch64_reinterpretv2sfv4hi (__a); |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vreinterpret_f32_s32 (int32x2_t __a) |
| { |
| return (float32x2_t) __builtin_aarch64_reinterpretv2sfv2si (__a); |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vreinterpret_f32_s64 (int64x1_t __a) |
| { |
| return (float32x2_t) __builtin_aarch64_reinterpretv2sfdi (__a); |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vreinterpret_f32_u8 (uint8x8_t __a) |
| { |
| return (float32x2_t) __builtin_aarch64_reinterpretv2sfv8qi ((int8x8_t) __a); |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vreinterpret_f32_u16 (uint16x4_t __a) |
| { |
| return (float32x2_t) __builtin_aarch64_reinterpretv2sfv4hi ((int16x4_t) |
| __a); |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vreinterpret_f32_u32 (uint32x2_t __a) |
| { |
| return (float32x2_t) __builtin_aarch64_reinterpretv2sfv2si ((int32x2_t) |
| __a); |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vreinterpret_f32_u64 (uint64x1_t __a) |
| { |
| return (float32x2_t) __builtin_aarch64_reinterpretv2sfdi ((int64x1_t) __a); |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vreinterpret_f32_p8 (poly8x8_t __a) |
| { |
| return (float32x2_t) __builtin_aarch64_reinterpretv2sfv8qi ((int8x8_t) __a); |
| } |
| |
| __extension__ static __inline float32x2_t __attribute__ ((__always_inline__)) |
| vreinterpret_f32_p16 (poly16x4_t __a) |
| { |
| return (float32x2_t) __builtin_aarch64_reinterpretv2sfv4hi ((int16x4_t) |
| __a); |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vreinterpretq_f32_s8 (int8x16_t __a) |
| { |
| return (float32x4_t) __builtin_aarch64_reinterpretv4sfv16qi (__a); |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vreinterpretq_f32_s16 (int16x8_t __a) |
| { |
| return (float32x4_t) __builtin_aarch64_reinterpretv4sfv8hi (__a); |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vreinterpretq_f32_s32 (int32x4_t __a) |
| { |
| return (float32x4_t) __builtin_aarch64_reinterpretv4sfv4si (__a); |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vreinterpretq_f32_s64 (int64x2_t __a) |
| { |
| return (float32x4_t) __builtin_aarch64_reinterpretv4sfv2di (__a); |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vreinterpretq_f32_u8 (uint8x16_t __a) |
| { |
| return (float32x4_t) __builtin_aarch64_reinterpretv4sfv16qi ((int8x16_t) |
| __a); |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vreinterpretq_f32_u16 (uint16x8_t __a) |
| { |
| return (float32x4_t) __builtin_aarch64_reinterpretv4sfv8hi ((int16x8_t) |
| __a); |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vreinterpretq_f32_u32 (uint32x4_t __a) |
| { |
| return (float32x4_t) __builtin_aarch64_reinterpretv4sfv4si ((int32x4_t) |
| __a); |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vreinterpretq_f32_u64 (uint64x2_t __a) |
| { |
| return (float32x4_t) __builtin_aarch64_reinterpretv4sfv2di ((int64x2_t) |
| __a); |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vreinterpretq_f32_p8 (poly8x16_t __a) |
| { |
| return (float32x4_t) __builtin_aarch64_reinterpretv4sfv16qi ((int8x16_t) |
| __a); |
| } |
| |
| __extension__ static __inline float32x4_t __attribute__ ((__always_inline__)) |
| vreinterpretq_f32_p16 (poly16x8_t __a) |
| { |
| return (float32x4_t) __builtin_aarch64_reinterpretv4sfv8hi ((int16x8_t) |
| __a); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_s64_s8 (int8x8_t __a) |
| { |
| return (int64x1_t) __builtin_aarch64_reinterpretdiv8qi (__a); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_s64_s16 (int16x4_t __a) |
| { |
| return (int64x1_t) __builtin_aarch64_reinterpretdiv4hi (__a); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_s64_s32 (int32x2_t __a) |
| { |
| return (int64x1_t) __builtin_aarch64_reinterpretdiv2si (__a); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_s64_f32 (float32x2_t __a) |
| { |
| return (int64x1_t) __builtin_aarch64_reinterpretdiv2sf (__a); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_s64_u8 (uint8x8_t __a) |
| { |
| return (int64x1_t) __builtin_aarch64_reinterpretdiv8qi ((int8x8_t) __a); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_s64_u16 (uint16x4_t __a) |
| { |
| return (int64x1_t) __builtin_aarch64_reinterpretdiv4hi ((int16x4_t) __a); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_s64_u32 (uint32x2_t __a) |
| { |
| return (int64x1_t) __builtin_aarch64_reinterpretdiv2si ((int32x2_t) __a); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_s64_u64 (uint64x1_t __a) |
| { |
| return (int64x1_t) __builtin_aarch64_reinterpretdidi ((int64x1_t) __a); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_s64_p8 (poly8x8_t __a) |
| { |
| return (int64x1_t) __builtin_aarch64_reinterpretdiv8qi ((int8x8_t) __a); |
| } |
| |
| __extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_s64_p16 (poly16x4_t __a) |
| { |
| return (int64x1_t) __builtin_aarch64_reinterpretdiv4hi ((int16x4_t) __a); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vreinterpretq_s64_s8 (int8x16_t __a) |
| { |
| return (int64x2_t) __builtin_aarch64_reinterpretv2div16qi (__a); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vreinterpretq_s64_s16 (int16x8_t __a) |
| { |
| return (int64x2_t) __builtin_aarch64_reinterpretv2div8hi (__a); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vreinterpretq_s64_s32 (int32x4_t __a) |
| { |
| return (int64x2_t) __builtin_aarch64_reinterpretv2div4si (__a); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vreinterpretq_s64_f32 (float32x4_t __a) |
| { |
| return (int64x2_t) __builtin_aarch64_reinterpretv2div4sf (__a); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vreinterpretq_s64_u8 (uint8x16_t __a) |
| { |
| return (int64x2_t) __builtin_aarch64_reinterpretv2div16qi ((int8x16_t) __a); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vreinterpretq_s64_u16 (uint16x8_t __a) |
| { |
| return (int64x2_t) __builtin_aarch64_reinterpretv2div8hi ((int16x8_t) __a); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vreinterpretq_s64_u32 (uint32x4_t __a) |
| { |
| return (int64x2_t) __builtin_aarch64_reinterpretv2div4si ((int32x4_t) __a); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vreinterpretq_s64_u64 (uint64x2_t __a) |
| { |
| return (int64x2_t) __builtin_aarch64_reinterpretv2div2di ((int64x2_t) __a); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vreinterpretq_s64_p8 (poly8x16_t __a) |
| { |
| return (int64x2_t) __builtin_aarch64_reinterpretv2div16qi ((int8x16_t) __a); |
| } |
| |
| __extension__ static __inline int64x2_t __attribute__ ((__always_inline__)) |
| vreinterpretq_s64_p16 (poly16x8_t __a) |
| { |
| return (int64x2_t) __builtin_aarch64_reinterpretv2div8hi ((int16x8_t) __a); |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_u64_s8 (int8x8_t __a) |
| { |
| return (uint64x1_t) __builtin_aarch64_reinterpretdiv8qi (__a); |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_u64_s16 (int16x4_t __a) |
| { |
| return (uint64x1_t) __builtin_aarch64_reinterpretdiv4hi (__a); |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_u64_s32 (int32x2_t __a) |
| { |
| return (uint64x1_t) __builtin_aarch64_reinterpretdiv2si (__a); |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__always_inline__)) |
| vreinterpret_u64_s64 (int64x1_t __a) |
| { |
| return (uint64x1_t) __builtin_aarch64_reinterpretdidi (__a); |
| } |
| |
| __extension__ static __inline uint64x1_t __attribute__ ((__
|