/* Arm MVE intrinsics include file. Copyright (C) 2020 Free Software Foundation, Inc. Contributed by Arm. 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. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ #ifndef _GCC_ARM_MVE_TYPES_H #define _GCC_ARM_MVE_TYPES_H #if (__ARM_FEATURE_MVE & 2) /* MVE Floating point. */ typedef __fp16 float16_t; typedef float float32_t; typedef __simd128_float16_t float16x8_t; typedef __simd128_float32_t float32x4_t; typedef struct { float16x8_t val[2]; } float16x8x2_t; typedef struct { float16x8_t val[4]; } float16x8x4_t; typedef struct { float32x4_t val[2]; } float32x4x2_t; typedef struct { float32x4_t val[4]; } float32x4x4_t; #endif typedef uint16_t mve_pred16_t; typedef __simd128_uint8_t uint8x16_t; typedef __simd128_uint16_t uint16x8_t; typedef __simd128_uint32_t uint32x4_t; typedef __simd128_uint64_t uint64x2_t; typedef __simd128_int8_t int8x16_t; typedef __simd128_int16_t int16x8_t; typedef __simd128_int32_t int32x4_t; typedef __simd128_int64_t int64x2_t; typedef struct { int16x8_t val[2]; } int16x8x2_t; typedef struct { int16x8_t val[4]; } int16x8x4_t; typedef struct { int32x4_t val[2]; } int32x4x2_t; typedef struct { int32x4_t val[4]; } int32x4x4_t; typedef struct { int8x16_t val[2]; } int8x16x2_t; typedef struct { int8x16_t val[4]; } int8x16x4_t; typedef struct { uint16x8_t val[2]; } uint16x8x2_t; typedef struct { uint16x8_t val[4]; } uint16x8x4_t; typedef struct { uint32x4_t val[2]; } uint32x4x2_t; typedef struct { uint32x4_t val[4]; } uint32x4x4_t; typedef struct { uint8x16_t val[2]; } uint8x16x2_t; typedef struct { uint8x16_t val[4]; } uint8x16x4_t; __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16_s32 (int32x4_t __a) { return (int16x8_t) __a; } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16_s64 (int64x2_t __a) { return (int16x8_t) __a; } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16_s8 (int8x16_t __a) { return (int16x8_t) __a; } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16_u16 (uint16x8_t __a) { return (int16x8_t) __a; } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16_u32 (uint32x4_t __a) { return (int16x8_t) __a; } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16_u64 (uint64x2_t __a) { return (int16x8_t) __a; } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16_u8 (uint8x16_t __a) { return (int16x8_t) __a; } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32_s16 (int16x8_t __a) { return (int32x4_t) __a; } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32_s64 (int64x2_t __a) { return (int32x4_t) __a; } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32_s8 (int8x16_t __a) { return (int32x4_t) __a; } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32_u16 (uint16x8_t __a) { return (int32x4_t) __a; } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32_u32 (uint32x4_t __a) { return (int32x4_t) __a; } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32_u64 (uint64x2_t __a) { return (int32x4_t) __a; } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32_u8 (uint8x16_t __a) { return (int32x4_t) __a; } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64_s16 (int16x8_t __a) { return (int64x2_t) __a; } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64_s32 (int32x4_t __a) { return (int64x2_t) __a; } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64_s8 (int8x16_t __a) { return (int64x2_t) __a; } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64_u16 (uint16x8_t __a) { return (int64x2_t) __a; } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64_u32 (uint32x4_t __a) { return (int64x2_t) __a; } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64_u64 (uint64x2_t __a) { return (int64x2_t) __a; } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64_u8 (uint8x16_t __a) { return (int64x2_t) __a; } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8_s16 (int16x8_t __a) { return (int8x16_t) __a; } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8_s32 (int32x4_t __a) { return (int8x16_t) __a; } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8_s64 (int64x2_t __a) { return (int8x16_t) __a; } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8_u16 (uint16x8_t __a) { return (int8x16_t) __a; } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8_u32 (uint32x4_t __a) { return (int8x16_t) __a; } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8_u64 (uint64x2_t __a) { return (int8x16_t) __a; } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8_u8 (uint8x16_t __a) { return (int8x16_t) __a; } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16_s16 (int16x8_t __a) { return (uint16x8_t) __a; } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16_s32 (int32x4_t __a) { return (uint16x8_t) __a; } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16_s64 (int64x2_t __a) { return (uint16x8_t) __a; } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16_s8 (int8x16_t __a) { return (uint16x8_t) __a; } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16_u32 (uint32x4_t __a) { return (uint16x8_t) __a; } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16_u64 (uint64x2_t __a) { return (uint16x8_t) __a; } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16_u8 (uint8x16_t __a) { return (uint16x8_t) __a; } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32_s16 (int16x8_t __a) { return (uint32x4_t) __a; } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32_s32 (int32x4_t __a) { return (uint32x4_t) __a; } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32_s64 (int64x2_t __a) { return (uint32x4_t) __a; } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32_s8 (int8x16_t __a) { return (uint32x4_t) __a; } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32_u16 (uint16x8_t __a) { return (uint32x4_t) __a; } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32_u64 (uint64x2_t __a) { return (uint32x4_t) __a; } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32_u8 (uint8x16_t __a) { return (uint32x4_t) __a; } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64_s16 (int16x8_t __a) { return (uint64x2_t) __a; } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64_s32 (int32x4_t __a) { return (uint64x2_t) __a; } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64_s64 (int64x2_t __a) { return (uint64x2_t) __a; } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64_s8 (int8x16_t __a) { return (uint64x2_t) __a; } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64_u16 (uint16x8_t __a) { return (uint64x2_t) __a; } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64_u32 (uint32x4_t __a) { return (uint64x2_t) __a; } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64_u8 (uint8x16_t __a) { return (uint64x2_t) __a; } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8_s16 (int16x8_t __a) { return (uint8x16_t) __a; } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8_s32 (int32x4_t __a) { return (uint8x16_t) __a; } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8_s64 (int64x2_t __a) { return (uint8x16_t) __a; } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8_s8 (int8x16_t __a) { return (uint8x16_t) __a; } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8_u16 (uint16x8_t __a) { return (uint8x16_t) __a; } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8_u32 (uint32x4_t __a) { return (uint8x16_t) __a; } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8_u64 (uint64x2_t __a) { return (uint8x16_t) __a; } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq_u8 (void) { uint8x16_t __uninit; __asm__ ("": "=w"(__uninit)); return __uninit; } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq_u16 (void) { uint16x8_t __uninit; __asm__ ("": "=w"(__uninit)); return __uninit; } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq_u32 (void) { uint32x4_t __uninit; __asm__ ("": "=w"(__uninit)); return __uninit; } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq_u64 (void) { uint64x2_t __uninit; __asm__ ("": "=w"(__uninit)); return __uninit; } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq_s8 (void) { int8x16_t __uninit; __asm__ ("": "=w"(__uninit)); return __uninit; } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq_s16 (void) { int16x8_t __uninit; __asm__ ("": "=w"(__uninit)); return __uninit; } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq_s32 (void) { int32x4_t __uninit; __asm__ ("": "=w"(__uninit)); return __uninit; } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq_s64 (void) { int64x2_t __uninit; __asm__ ("": "=w"(__uninit)); return __uninit; } #if (__ARM_FEATURE_MVE & 2) /* MVE Floating point. */ __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32_f16 (float16x8_t __a) { return (int32x4_t) __a; } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32_f32 (float32x4_t __a) { return (int32x4_t) __a; } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16_f16 (float16x8_t __a) { return (int16x8_t) __a; } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16_f32 (float32x4_t __a) { return (int16x8_t) __a; } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64_f16 (float16x8_t __a) { return (int64x2_t) __a; } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64_f32 (float32x4_t __a) { return (int64x2_t) __a; } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8_f16 (float16x8_t __a) { return (int8x16_t) __a; } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8_f32 (float32x4_t __a) { return (int8x16_t) __a; } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16_f16 (float16x8_t __a) { return (uint16x8_t) __a; } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16_f32 (float32x4_t __a) { return (uint16x8_t) __a; } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32_f16 (float16x8_t __a) { return (uint32x4_t) __a; } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32_f32 (float32x4_t __a) { return (uint32x4_t) __a; } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64_f16 (float16x8_t __a) { return (uint64x2_t) __a; } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64_f32 (float32x4_t __a) { return (uint64x2_t) __a; } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8_f16 (float16x8_t __a) { return (uint8x16_t) __a; } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8_f32 (float32x4_t __a) { return (uint8x16_t) __a; } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16_f32 (float32x4_t __a) { return (float16x8_t) __a; } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16_s16 (int16x8_t __a) { return (float16x8_t) __a; } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16_s32 (int32x4_t __a) { return (float16x8_t) __a; } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16_s64 (int64x2_t __a) { return (float16x8_t) __a; } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16_s8 (int8x16_t __a) { return (float16x8_t) __a; } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16_u16 (uint16x8_t __a) { return (float16x8_t) __a; } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16_u32 (uint32x4_t __a) { return (float16x8_t) __a; } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16_u64 (uint64x2_t __a) { return (float16x8_t) __a; } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16_u8 (uint8x16_t __a) { return (float16x8_t) __a; } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32_f16 (float16x8_t __a) { return (float32x4_t) __a; } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32_s16 (int16x8_t __a) { return (float32x4_t) __a; } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32_s32 (int32x4_t __a) { return (float32x4_t) __a; } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32_s64 (int64x2_t __a) { return (float32x4_t) __a; } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32_s8 (int8x16_t __a) { return (float32x4_t) __a; } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32_u16 (uint16x8_t __a) { return (float32x4_t) __a; } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32_u32 (uint32x4_t __a) { return (float32x4_t) __a; } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32_u64 (uint64x2_t __a) { return (float32x4_t) __a; } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32_u8 (uint8x16_t __a) { return (float32x4_t) __a; } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq_f16 (void) { float16x8_t __uninit; __asm__ ("": "=w" (__uninit)); return __uninit; } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq_f32 (void) { float32x4_t __uninit; __asm__ ("": "=w" (__uninit)); return __uninit; } #endif #ifdef __cplusplus __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16 (int32x4_t __a) { return __arm_vreinterpretq_s16_s32 (__a); } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16 (int64x2_t __a) { return __arm_vreinterpretq_s16_s64 (__a); } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16 (int8x16_t __a) { return __arm_vreinterpretq_s16_s8 (__a); } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16 (uint16x8_t __a) { return __arm_vreinterpretq_s16_u16 (__a); } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16 (uint32x4_t __a) { return __arm_vreinterpretq_s16_u32 (__a); } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16 (uint64x2_t __a) { return __arm_vreinterpretq_s16_u64 (__a); } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16 (uint8x16_t __a) { return __arm_vreinterpretq_s16_u8 (__a); } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32 (int16x8_t __a) { return __arm_vreinterpretq_s32_s16 (__a); } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32 (int64x2_t __a) { return __arm_vreinterpretq_s32_s64 (__a); } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32 (int8x16_t __a) { return __arm_vreinterpretq_s32_s8 (__a); } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32 (uint16x8_t __a) { return __arm_vreinterpretq_s32_u16 (__a); } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32 (uint32x4_t __a) { return __arm_vreinterpretq_s32_u32 (__a); } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32 (uint64x2_t __a) { return __arm_vreinterpretq_s32_u64 (__a); } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32 (uint8x16_t __a) { return __arm_vreinterpretq_s32_u8 (__a); } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64 (int16x8_t __a) { return __arm_vreinterpretq_s64_s16 (__a); } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64 (int32x4_t __a) { return __arm_vreinterpretq_s64_s32 (__a); } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64 (int8x16_t __a) { return __arm_vreinterpretq_s64_s8 (__a); } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64 (uint16x8_t __a) { return __arm_vreinterpretq_s64_u16 (__a); } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64 (uint32x4_t __a) { return __arm_vreinterpretq_s64_u32 (__a); } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64 (uint64x2_t __a) { return __arm_vreinterpretq_s64_u64 (__a); } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64 (uint8x16_t __a) { return __arm_vreinterpretq_s64_u8 (__a); } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8 (int16x8_t __a) { return __arm_vreinterpretq_s8_s16 (__a); } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8 (int32x4_t __a) { return __arm_vreinterpretq_s8_s32 (__a); } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8 (int64x2_t __a) { return __arm_vreinterpretq_s8_s64 (__a); } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8 (uint16x8_t __a) { return __arm_vreinterpretq_s8_u16 (__a); } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8 (uint32x4_t __a) { return __arm_vreinterpretq_s8_u32 (__a); } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8 (uint64x2_t __a) { return __arm_vreinterpretq_s8_u64 (__a); } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8 (uint8x16_t __a) { return __arm_vreinterpretq_s8_u8 (__a); } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16 (int16x8_t __a) { return __arm_vreinterpretq_u16_s16 (__a); } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16 (int32x4_t __a) { return __arm_vreinterpretq_u16_s32 (__a); } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16 (int64x2_t __a) { return __arm_vreinterpretq_u16_s64 (__a); } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16 (int8x16_t __a) { return __arm_vreinterpretq_u16_s8 (__a); } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16 (uint32x4_t __a) { return __arm_vreinterpretq_u16_u32 (__a); } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16 (uint64x2_t __a) { return __arm_vreinterpretq_u16_u64 (__a); } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16 (uint8x16_t __a) { return __arm_vreinterpretq_u16_u8 (__a); } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32 (int16x8_t __a) { return __arm_vreinterpretq_u32_s16 (__a); } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32 (int32x4_t __a) { return __arm_vreinterpretq_u32_s32 (__a); } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32 (int64x2_t __a) { return __arm_vreinterpretq_u32_s64 (__a); } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32 (int8x16_t __a) { return __arm_vreinterpretq_u32_s8 (__a); } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32 (uint16x8_t __a) { return __arm_vreinterpretq_u32_u16 (__a); } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32 (uint64x2_t __a) { return __arm_vreinterpretq_u32_u64 (__a); } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32 (uint8x16_t __a) { return __arm_vreinterpretq_u32_u8 (__a); } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64 (int16x8_t __a) { return __arm_vreinterpretq_u64_s16 (__a); } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64 (int32x4_t __a) { return __arm_vreinterpretq_u64_s32 (__a); } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64 (int64x2_t __a) { return __arm_vreinterpretq_u64_s64 (__a); } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64 (int8x16_t __a) { return __arm_vreinterpretq_u64_s8 (__a); } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64 (uint16x8_t __a) { return __arm_vreinterpretq_u64_u16 (__a); } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64 (uint32x4_t __a) { return __arm_vreinterpretq_u64_u32 (__a); } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64 (uint8x16_t __a) { return __arm_vreinterpretq_u64_u8 (__a); } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8 (int16x8_t __a) { return __arm_vreinterpretq_u8_s16 (__a); } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8 (int32x4_t __a) { return __arm_vreinterpretq_u8_s32 (__a); } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8 (int64x2_t __a) { return __arm_vreinterpretq_u8_s64 (__a); } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8 (int8x16_t __a) { return __arm_vreinterpretq_u8_s8 (__a); } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8 (uint16x8_t __a) { return __arm_vreinterpretq_u8_u16 (__a); } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8 (uint32x4_t __a) { return __arm_vreinterpretq_u8_u32 (__a); } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8 (uint64x2_t __a) { return __arm_vreinterpretq_u8_u64 (__a); } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq (uint8x16_t /* __v ATTRIBUTE UNUSED */) { return __arm_vuninitializedq_u8 (); } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq (uint16x8_t /* __v ATTRIBUTE UNUSED */) { return __arm_vuninitializedq_u16 (); } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq (uint32x4_t /* __v ATTRIBUTE UNUSED */) { return __arm_vuninitializedq_u32 (); } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq (uint64x2_t /* __v ATTRIBUTE UNUSED */) { return __arm_vuninitializedq_u64 (); } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq (int8x16_t /* __v ATTRIBUTE UNUSED */) { return __arm_vuninitializedq_s8 (); } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq (int16x8_t /* __v ATTRIBUTE UNUSED */) { return __arm_vuninitializedq_s16 (); } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq (int32x4_t /* __v ATTRIBUTE UNUSED */) { return __arm_vuninitializedq_s32 (); } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq (int64x2_t /* __v ATTRIBUTE UNUSED */) { return __arm_vuninitializedq_s64 (); } #if (__ARM_FEATURE_MVE & 2) /* MVE Floating point. */ __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32 (float16x8_t __a) { return __arm_vreinterpretq_s32_f16 (__a); } __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s32 (float32x4_t __a) { return __arm_vreinterpretq_s32_f32 (__a); } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16 (float16x8_t __a) { return __arm_vreinterpretq_s16_f16 (__a); } __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s16 (float32x4_t __a) { return __arm_vreinterpretq_s16_f32 (__a); } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64 (float16x8_t __a) { return __arm_vreinterpretq_s64_f16 (__a); } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s64 (float32x4_t __a) { return __arm_vreinterpretq_s64_f32 (__a); } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8 (float16x8_t __a) { return __arm_vreinterpretq_s8_f16 (__a); } __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_s8 (float32x4_t __a) { return __arm_vreinterpretq_s8_f32 (__a); } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16 (float16x8_t __a) { return __arm_vreinterpretq_u16_f16 (__a); } __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u16 (float32x4_t __a) { return __arm_vreinterpretq_u16_f32 (__a); } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32 (float16x8_t __a) { return __arm_vreinterpretq_u32_f16 (__a); } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u32 (float32x4_t __a) { return __arm_vreinterpretq_u32_f32 (__a); } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64 (float16x8_t __a) { return __arm_vreinterpretq_u64_f16 (__a); } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u64 (float32x4_t __a) { return __arm_vreinterpretq_u64_f32 (__a); } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8 (float16x8_t __a) { return __arm_vreinterpretq_u8_f16 (__a); } __extension__ extern __inline uint8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_u8 (float32x4_t __a) { return __arm_vreinterpretq_u8_f32 (__a); } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16 (float32x4_t __a) { return __arm_vreinterpretq_f16_f32 (__a); } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16 (int16x8_t __a) { return __arm_vreinterpretq_f16_s16 (__a); } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16 (int32x4_t __a) { return __arm_vreinterpretq_f16_s32 (__a); } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16 (int64x2_t __a) { return __arm_vreinterpretq_f16_s64 (__a); } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16 (int8x16_t __a) { return __arm_vreinterpretq_f16_s8 (__a); } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16 (uint16x8_t __a) { return __arm_vreinterpretq_f16_u16 (__a); } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16 (uint32x4_t __a) { return __arm_vreinterpretq_f16_u32 (__a); } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16 (uint64x2_t __a) { return __arm_vreinterpretq_f16_u64 (__a); } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f16 (uint8x16_t __a) { return __arm_vreinterpretq_f16_u8 (__a); } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32 (float16x8_t __a) { return __arm_vreinterpretq_f32_f16 (__a); } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32 (int16x8_t __a) { return __arm_vreinterpretq_f32_s16 (__a); } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32 (int32x4_t __a) { return __arm_vreinterpretq_f32_s32 (__a); } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32 (int64x2_t __a) { return __arm_vreinterpretq_f32_s64 (__a); } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32 (int8x16_t __a) { return __arm_vreinterpretq_f32_s8 (__a); } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32 (uint16x8_t __a) { return __arm_vreinterpretq_f32_u16 (__a); } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32 (uint32x4_t __a) { return __arm_vreinterpretq_f32_u32 (__a); } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32 (uint64x2_t __a) { return __arm_vreinterpretq_f32_u64 (__a); } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vreinterpretq_f32 (uint8x16_t __a) { return __arm_vreinterpretq_f32_u8 (__a); } __extension__ extern __inline float16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq (float16x8_t /* __v ATTRIBUTE UNUSED */) { return __arm_vuninitializedq_f16 (); } __extension__ extern __inline float32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vuninitializedq (float32x4_t /* __v ATTRIBUTE UNUSED */) { return __arm_vuninitializedq_f32 (); } #endif /* __ARM_FEATURE_MVE & 2 (MVE floating point) */ #endif /* __cplusplus */ #endif /* _GCC_ARM_MVE_H. */