#include <arm_neon.h>
Reduction & pairwise
Across-vector reductions (sum, min, max) and pairwise add/min/max, including long pairwise add-accumulate.
functionvpadd_f16
__ai __attribute__((target("fullfp16,neon"))) float16x4_t vpadd_f16(float16x4_t __p0, float16x4_t __p1)
functionvpmax_f16
__ai __attribute__((target("fullfp16,neon"))) float16x4_t vpmax_f16(float16x4_t __p0, float16x4_t __p1)
functionvpmin_f16
__ai __attribute__((target("fullfp16,neon"))) float16x4_t vpmin_f16(float16x4_t __p0, float16x4_t __p1)
functionvpadalq_u8
__ai __attribute__((target("neon"))) uint16x8_t vpadalq_u8(uint16x8_t __p0, uint8x16_t __p1)
functionvpadalq_u32
__ai __attribute__((target("neon"))) uint64x2_t vpadalq_u32(uint64x2_t __p0, uint32x4_t __p1)
functionvpadalq_u16
__ai __attribute__((target("neon"))) uint32x4_t vpadalq_u16(uint32x4_t __p0, uint16x8_t __p1)
functionvpadalq_s8
__ai __attribute__((target("neon"))) int16x8_t vpadalq_s8(int16x8_t __p0, int8x16_t __p1)
functionvpadalq_s32
__ai __attribute__((target("neon"))) int64x2_t vpadalq_s32(int64x2_t __p0, int32x4_t __p1)
functionvpadalq_s16
__ai __attribute__((target("neon"))) int32x4_t vpadalq_s16(int32x4_t __p0, int16x8_t __p1)
functionvpadal_u8
__ai __attribute__((target("neon"))) uint16x4_t vpadal_u8(uint16x4_t __p0, uint8x8_t __p1)
functionvpadal_u32
__ai __attribute__((target("neon"))) uint64x1_t vpadal_u32(uint64x1_t __p0, uint32x2_t __p1)
functionvpadal_u16
__ai __attribute__((target("neon"))) uint32x2_t vpadal_u16(uint32x2_t __p0, uint16x4_t __p1)
functionvpadal_s8
__ai __attribute__((target("neon"))) int16x4_t vpadal_s8(int16x4_t __p0, int8x8_t __p1)
functionvpadal_s32
__ai __attribute__((target("neon"))) int64x1_t vpadal_s32(int64x1_t __p0, int32x2_t __p1)
functionvpadal_s16
__ai __attribute__((target("neon"))) int32x2_t vpadal_s16(int32x2_t __p0, int16x4_t __p1)
functionvpadd_u8
__ai __attribute__((target("neon"))) uint8x8_t vpadd_u8(uint8x8_t __p0, uint8x8_t __p1)
functionvpadd_u32
__ai __attribute__((target("neon"))) uint32x2_t vpadd_u32(uint32x2_t __p0, uint32x2_t __p1)
functionvpadd_u16
__ai __attribute__((target("neon"))) uint16x4_t vpadd_u16(uint16x4_t __p0, uint16x4_t __p1)
functionvpadd_s8
__ai __attribute__((target("neon"))) int8x8_t vpadd_s8(int8x8_t __p0, int8x8_t __p1)
functionvpadd_f32
__ai __attribute__((target("neon"))) float32x2_t vpadd_f32(float32x2_t __p0, float32x2_t __p1)
functionvpadd_s32
__ai __attribute__((target("neon"))) int32x2_t vpadd_s32(int32x2_t __p0, int32x2_t __p1)
functionvpadd_s16
__ai __attribute__((target("neon"))) int16x4_t vpadd_s16(int16x4_t __p0, int16x4_t __p1)
functionvpaddlq_u8
__ai __attribute__((target("neon"))) uint16x8_t vpaddlq_u8(uint8x16_t __p0)
functionvpaddlq_u32
__ai __attribute__((target("neon"))) uint64x2_t vpaddlq_u32(uint32x4_t __p0)
functionvpaddlq_u16
__ai __attribute__((target("neon"))) uint32x4_t vpaddlq_u16(uint16x8_t __p0)
functionvpaddlq_s8
__ai __attribute__((target("neon"))) int16x8_t vpaddlq_s8(int8x16_t __p0)
functionvpaddlq_s32
__ai __attribute__((target("neon"))) int64x2_t vpaddlq_s32(int32x4_t __p0)
functionvpaddlq_s16
__ai __attribute__((target("neon"))) int32x4_t vpaddlq_s16(int16x8_t __p0)
functionvpaddl_u8
__ai __attribute__((target("neon"))) uint16x4_t vpaddl_u8(uint8x8_t __p0)
functionvpaddl_u32
__ai __attribute__((target("neon"))) uint64x1_t vpaddl_u32(uint32x2_t __p0)
functionvpaddl_u16
__ai __attribute__((target("neon"))) uint32x2_t vpaddl_u16(uint16x4_t __p0)
functionvpaddl_s32
__ai __attribute__((target("neon"))) int64x1_t vpaddl_s32(int32x2_t __p0)
functionvpaddl_s16
__ai __attribute__((target("neon"))) int32x2_t vpaddl_s16(int16x4_t __p0)
functionvpmax_u8
__ai __attribute__((target("neon"))) uint8x8_t vpmax_u8(uint8x8_t __p0, uint8x8_t __p1)
functionvpmax_u32
__ai __attribute__((target("neon"))) uint32x2_t vpmax_u32(uint32x2_t __p0, uint32x2_t __p1)
functionvpmax_u16
__ai __attribute__((target("neon"))) uint16x4_t vpmax_u16(uint16x4_t __p0, uint16x4_t __p1)
functionvpmax_s8
__ai __attribute__((target("neon"))) int8x8_t vpmax_s8(int8x8_t __p0, int8x8_t __p1)
functionvpmax_f32
__ai __attribute__((target("neon"))) float32x2_t vpmax_f32(float32x2_t __p0, float32x2_t __p1)
functionvpmax_s32
__ai __attribute__((target("neon"))) int32x2_t vpmax_s32(int32x2_t __p0, int32x2_t __p1)
functionvpmax_s16
__ai __attribute__((target("neon"))) int16x4_t vpmax_s16(int16x4_t __p0, int16x4_t __p1)
functionvpmin_u8
__ai __attribute__((target("neon"))) uint8x8_t vpmin_u8(uint8x8_t __p0, uint8x8_t __p1)
functionvpmin_u32
__ai __attribute__((target("neon"))) uint32x2_t vpmin_u32(uint32x2_t __p0, uint32x2_t __p1)
functionvpmin_u16
__ai __attribute__((target("neon"))) uint16x4_t vpmin_u16(uint16x4_t __p0, uint16x4_t __p1)
functionvpmin_s8
__ai __attribute__((target("neon"))) int8x8_t vpmin_s8(int8x8_t __p0, int8x8_t __p1)
functionvpmin_f32
__ai __attribute__((target("neon"))) float32x2_t vpmin_f32(float32x2_t __p0, float32x2_t __p1)
functionvpmin_s32
__ai __attribute__((target("neon"))) int32x2_t vpmin_s32(int32x2_t __p0, int32x2_t __p1)
functionvpmin_s16
__ai __attribute__((target("neon"))) int16x4_t vpmin_s16(int16x4_t __p0, int16x4_t __p1)
macrovmaxnmvq_f16
#define vmaxnmvq_f16(__p0) __extension__ ({
float16_t __ret;
float16x8_t __s0 = __p0;
__ret = __builtin_bit_cast(float16_t, __builtin_neon_vmaxnmvq_f16(__builtin_bit_cast(int8x16_t, __s0)));
__ret;
})macrovmaxnmv_f16
#define vmaxnmv_f16(__p0) __extension__ ({
float16_t __ret;
float16x4_t __s0 = __p0;
__ret = __builtin_bit_cast(float16_t, __builtin_neon_vmaxnmv_f16(__builtin_bit_cast(int8x8_t, __s0)));
__ret;
})macrovmaxvq_f16
#define vmaxvq_f16(__p0) __extension__ ({
float16_t __ret;
float16x8_t __s0 = __p0;
__ret = __builtin_bit_cast(float16_t, __builtin_neon_vmaxvq_f16(__builtin_bit_cast(int8x16_t, __s0)));
__ret;
})macrovmaxv_f16
#define vmaxv_f16(__p0) __extension__ ({
float16_t __ret;
float16x4_t __s0 = __p0;
__ret = __builtin_bit_cast(float16_t, __builtin_neon_vmaxv_f16(__builtin_bit_cast(int8x8_t, __s0)));
__ret;
})macrovminnmvq_f16
#define vminnmvq_f16(__p0) __extension__ ({
float16_t __ret;
float16x8_t __s0 = __p0;
__ret = __builtin_bit_cast(float16_t, __builtin_neon_vminnmvq_f16(__builtin_bit_cast(int8x16_t, __s0)));
__ret;
})macrovminnmv_f16
#define vminnmv_f16(__p0) __extension__ ({
float16_t __ret;
float16x4_t __s0 = __p0;
__ret = __builtin_bit_cast(float16_t, __builtin_neon_vminnmv_f16(__builtin_bit_cast(int8x8_t, __s0)));
__ret;
})macrovminvq_f16
#define vminvq_f16(__p0) __extension__ ({
float16_t __ret;
float16x8_t __s0 = __p0;
__ret = __builtin_bit_cast(float16_t, __builtin_neon_vminvq_f16(__builtin_bit_cast(int8x16_t, __s0)));
__ret;
})macrovminv_f16
#define vminv_f16(__p0) __extension__ ({
float16_t __ret;
float16x4_t __s0 = __p0;
__ret = __builtin_bit_cast(float16_t, __builtin_neon_vminv_f16(__builtin_bit_cast(int8x8_t, __s0)));
__ret;
})functionvpaddq_f16
__ai __attribute__((target("fullfp16,neon"))) float16x8_t vpaddq_f16(float16x8_t __p0, float16x8_t __p1)
functionvpmaxq_f16
__ai __attribute__((target("fullfp16,neon"))) float16x8_t vpmaxq_f16(float16x8_t __p0, float16x8_t __p1)
functionvpmaxnmq_f16
__ai __attribute__((target("fullfp16,neon"))) float16x8_t vpmaxnmq_f16(float16x8_t __p0, float16x8_t __p1)
functionvpmaxnm_f16
__ai __attribute__((target("fullfp16,neon"))) float16x4_t vpmaxnm_f16(float16x4_t __p0, float16x4_t __p1)
functionvpminq_f16
__ai __attribute__((target("fullfp16,neon"))) float16x8_t vpminq_f16(float16x8_t __p0, float16x8_t __p1)
functionvpminnmq_f16
__ai __attribute__((target("fullfp16,neon"))) float16x8_t vpminnmq_f16(float16x8_t __p0, float16x8_t __p1)
functionvpminnm_f16
__ai __attribute__((target("fullfp16,neon"))) float16x4_t vpminnm_f16(float16x4_t __p0, float16x4_t __p1)
functionvaddlvq_u8
__ai __attribute__((target("neon"))) uint16_t vaddlvq_u8(uint8x16_t __p0)
functionvaddlvq_u32
__ai __attribute__((target("neon"))) uint64_t vaddlvq_u32(uint32x4_t __p0)
functionvaddlvq_u16
__ai __attribute__((target("neon"))) uint32_t vaddlvq_u16(uint16x8_t __p0)
functionvaddlvq_s8
__ai __attribute__((target("neon"))) int16_t vaddlvq_s8(int8x16_t __p0)
functionvaddlvq_s32
__ai __attribute__((target("neon"))) int64_t vaddlvq_s32(int32x4_t __p0)
functionvaddlvq_s16
__ai __attribute__((target("neon"))) int32_t vaddlvq_s16(int16x8_t __p0)
functionvaddlv_u32
__ai __attribute__((target("neon"))) uint64_t vaddlv_u32(uint32x2_t __p0)
functionvaddlv_u16
__ai __attribute__((target("neon"))) uint32_t vaddlv_u16(uint16x4_t __p0)
functionvaddlv_s32
__ai __attribute__((target("neon"))) int64_t vaddlv_s32(int32x2_t __p0)
functionvaddlv_s16
__ai __attribute__((target("neon"))) int32_t vaddlv_s16(int16x4_t __p0)
functionvaddvq_u8
__ai __attribute__((target("neon"))) uint8_t vaddvq_u8(uint8x16_t __p0)
functionvaddvq_u32
__ai __attribute__((target("neon"))) uint32_t vaddvq_u32(uint32x4_t __p0)
functionvaddvq_u64
__ai __attribute__((target("neon"))) uint64_t vaddvq_u64(uint64x2_t __p0)
functionvaddvq_u16
__ai __attribute__((target("neon"))) uint16_t vaddvq_u16(uint16x8_t __p0)
functionvaddvq_f64
__ai __attribute__((target("neon"))) float64_t vaddvq_f64(float64x2_t __p0)
functionvaddvq_f32
__ai __attribute__((target("neon"))) float32_t vaddvq_f32(float32x4_t __p0)
functionvaddvq_s32
__ai __attribute__((target("neon"))) int32_t vaddvq_s32(int32x4_t __p0)
functionvaddvq_s64
__ai __attribute__((target("neon"))) int64_t vaddvq_s64(int64x2_t __p0)
functionvaddvq_s16
__ai __attribute__((target("neon"))) int16_t vaddvq_s16(int16x8_t __p0)
functionvaddv_u32
__ai __attribute__((target("neon"))) uint32_t vaddv_u32(uint32x2_t __p0)
functionvaddv_u16
__ai __attribute__((target("neon"))) uint16_t vaddv_u16(uint16x4_t __p0)
functionvaddv_f32
__ai __attribute__((target("neon"))) float32_t vaddv_f32(float32x2_t __p0)
functionvmaxnmvq_f64
__ai __attribute__((target("neon"))) float64_t vmaxnmvq_f64(float64x2_t __p0)
functionvmaxnmvq_f32
__ai __attribute__((target("neon"))) float32_t vmaxnmvq_f32(float32x4_t __p0)
functionvmaxnmv_f32
__ai __attribute__((target("neon"))) float32_t vmaxnmv_f32(float32x2_t __p0)
functionvmaxvq_u8
__ai __attribute__((target("neon"))) uint8_t vmaxvq_u8(uint8x16_t __p0)
functionvmaxvq_u32
__ai __attribute__((target("neon"))) uint32_t vmaxvq_u32(uint32x4_t __p0)
functionvmaxvq_u16
__ai __attribute__((target("neon"))) uint16_t vmaxvq_u16(uint16x8_t __p0)
functionvmaxvq_f64
__ai __attribute__((target("neon"))) float64_t vmaxvq_f64(float64x2_t __p0)
functionvmaxvq_f32
__ai __attribute__((target("neon"))) float32_t vmaxvq_f32(float32x4_t __p0)
functionvmaxvq_s32
__ai __attribute__((target("neon"))) int32_t vmaxvq_s32(int32x4_t __p0)
functionvmaxvq_s16
__ai __attribute__((target("neon"))) int16_t vmaxvq_s16(int16x8_t __p0)
functionvmaxv_u32
__ai __attribute__((target("neon"))) uint32_t vmaxv_u32(uint32x2_t __p0)
functionvmaxv_u16
__ai __attribute__((target("neon"))) uint16_t vmaxv_u16(uint16x4_t __p0)
functionvmaxv_f32
__ai __attribute__((target("neon"))) float32_t vmaxv_f32(float32x2_t __p0)
functionvminnmvq_f64
__ai __attribute__((target("neon"))) float64_t vminnmvq_f64(float64x2_t __p0)
functionvminnmvq_f32
__ai __attribute__((target("neon"))) float32_t vminnmvq_f32(float32x4_t __p0)
functionvminnmv_f32
__ai __attribute__((target("neon"))) float32_t vminnmv_f32(float32x2_t __p0)
functionvminvq_u8
__ai __attribute__((target("neon"))) uint8_t vminvq_u8(uint8x16_t __p0)
functionvminvq_u32
__ai __attribute__((target("neon"))) uint32_t vminvq_u32(uint32x4_t __p0)
functionvminvq_u16
__ai __attribute__((target("neon"))) uint16_t vminvq_u16(uint16x8_t __p0)
functionvminvq_f64
__ai __attribute__((target("neon"))) float64_t vminvq_f64(float64x2_t __p0)
functionvminvq_f32
__ai __attribute__((target("neon"))) float32_t vminvq_f32(float32x4_t __p0)
functionvminvq_s32
__ai __attribute__((target("neon"))) int32_t vminvq_s32(int32x4_t __p0)
functionvminvq_s16
__ai __attribute__((target("neon"))) int16_t vminvq_s16(int16x8_t __p0)
functionvminv_u32
__ai __attribute__((target("neon"))) uint32_t vminv_u32(uint32x2_t __p0)
functionvminv_u16
__ai __attribute__((target("neon"))) uint16_t vminv_u16(uint16x4_t __p0)
functionvminv_f32
__ai __attribute__((target("neon"))) float32_t vminv_f32(float32x2_t __p0)
functionvpaddq_u8
__ai __attribute__((target("neon"))) uint8x16_t vpaddq_u8(uint8x16_t __p0, uint8x16_t __p1)
functionvpaddq_u32
__ai __attribute__((target("neon"))) uint32x4_t vpaddq_u32(uint32x4_t __p0, uint32x4_t __p1)
functionvpaddq_u64
__ai __attribute__((target("neon"))) uint64x2_t vpaddq_u64(uint64x2_t __p0, uint64x2_t __p1)
functionvpaddq_u16
__ai __attribute__((target("neon"))) uint16x8_t vpaddq_u16(uint16x8_t __p0, uint16x8_t __p1)
functionvpaddq_s8
__ai __attribute__((target("neon"))) int8x16_t vpaddq_s8(int8x16_t __p0, int8x16_t __p1)
functionvpaddq_f64
__ai __attribute__((target("neon"))) float64x2_t vpaddq_f64(float64x2_t __p0, float64x2_t __p1)
functionvpaddq_f32
__ai __attribute__((target("neon"))) float32x4_t vpaddq_f32(float32x4_t __p0, float32x4_t __p1)
functionvpaddq_s32
__ai __attribute__((target("neon"))) int32x4_t vpaddq_s32(int32x4_t __p0, int32x4_t __p1)
functionvpaddq_s64
__ai __attribute__((target("neon"))) int64x2_t vpaddq_s64(int64x2_t __p0, int64x2_t __p1)
functionvpaddq_s16
__ai __attribute__((target("neon"))) int16x8_t vpaddq_s16(int16x8_t __p0, int16x8_t __p1)
functionvpaddd_u64
__ai __attribute__((target("neon"))) uint64_t vpaddd_u64(uint64x2_t __p0)
functionvpaddd_f64
__ai __attribute__((target("neon"))) float64_t vpaddd_f64(float64x2_t __p0)
functionvpaddd_s64
__ai __attribute__((target("neon"))) int64_t vpaddd_s64(int64x2_t __p0)
functionvpadds_f32
__ai __attribute__((target("neon"))) float32_t vpadds_f32(float32x2_t __p0)
functionvpmaxq_u8
__ai __attribute__((target("neon"))) uint8x16_t vpmaxq_u8(uint8x16_t __p0, uint8x16_t __p1)
functionvpmaxq_u32
__ai __attribute__((target("neon"))) uint32x4_t vpmaxq_u32(uint32x4_t __p0, uint32x4_t __p1)
functionvpmaxq_u16
__ai __attribute__((target("neon"))) uint16x8_t vpmaxq_u16(uint16x8_t __p0, uint16x8_t __p1)
functionvpmaxq_s8
__ai __attribute__((target("neon"))) int8x16_t vpmaxq_s8(int8x16_t __p0, int8x16_t __p1)
functionvpmaxq_f64
__ai __attribute__((target("neon"))) float64x2_t vpmaxq_f64(float64x2_t __p0, float64x2_t __p1)
functionvpmaxq_f32
__ai __attribute__((target("neon"))) float32x4_t vpmaxq_f32(float32x4_t __p0, float32x4_t __p1)
functionvpmaxq_s32
__ai __attribute__((target("neon"))) int32x4_t vpmaxq_s32(int32x4_t __p0, int32x4_t __p1)
functionvpmaxq_s16
__ai __attribute__((target("neon"))) int16x8_t vpmaxq_s16(int16x8_t __p0, int16x8_t __p1)
functionvpmaxqd_f64
__ai __attribute__((target("neon"))) float64_t vpmaxqd_f64(float64x2_t __p0)
functionvpmaxs_f32
__ai __attribute__((target("neon"))) float32_t vpmaxs_f32(float32x2_t __p0)
functionvpmaxnmq_f64
__ai __attribute__((target("neon"))) float64x2_t vpmaxnmq_f64(float64x2_t __p0, float64x2_t __p1)
functionvpmaxnmq_f32
__ai __attribute__((target("neon"))) float32x4_t vpmaxnmq_f32(float32x4_t __p0, float32x4_t __p1)
functionvpmaxnm_f32
__ai __attribute__((target("neon"))) float32x2_t vpmaxnm_f32(float32x2_t __p0, float32x2_t __p1)
functionvpmaxnmqd_f64
__ai __attribute__((target("neon"))) float64_t vpmaxnmqd_f64(float64x2_t __p0)
functionvpmaxnms_f32
__ai __attribute__((target("neon"))) float32_t vpmaxnms_f32(float32x2_t __p0)
functionvpminq_u8
__ai __attribute__((target("neon"))) uint8x16_t vpminq_u8(uint8x16_t __p0, uint8x16_t __p1)
functionvpminq_u32
__ai __attribute__((target("neon"))) uint32x4_t vpminq_u32(uint32x4_t __p0, uint32x4_t __p1)
functionvpminq_u16
__ai __attribute__((target("neon"))) uint16x8_t vpminq_u16(uint16x8_t __p0, uint16x8_t __p1)
functionvpminq_s8
__ai __attribute__((target("neon"))) int8x16_t vpminq_s8(int8x16_t __p0, int8x16_t __p1)
functionvpminq_f64
__ai __attribute__((target("neon"))) float64x2_t vpminq_f64(float64x2_t __p0, float64x2_t __p1)
functionvpminq_f32
__ai __attribute__((target("neon"))) float32x4_t vpminq_f32(float32x4_t __p0, float32x4_t __p1)
functionvpminq_s32
__ai __attribute__((target("neon"))) int32x4_t vpminq_s32(int32x4_t __p0, int32x4_t __p1)
functionvpminq_s16
__ai __attribute__((target("neon"))) int16x8_t vpminq_s16(int16x8_t __p0, int16x8_t __p1)
functionvpminqd_f64
__ai __attribute__((target("neon"))) float64_t vpminqd_f64(float64x2_t __p0)
functionvpmins_f32
__ai __attribute__((target("neon"))) float32_t vpmins_f32(float32x2_t __p0)
functionvpminnmq_f64
__ai __attribute__((target("neon"))) float64x2_t vpminnmq_f64(float64x2_t __p0, float64x2_t __p1)
functionvpminnmq_f32
__ai __attribute__((target("neon"))) float32x4_t vpminnmq_f32(float32x4_t __p0, float32x4_t __p1)
functionvpminnm_f32
__ai __attribute__((target("neon"))) float32x2_t vpminnm_f32(float32x2_t __p0, float32x2_t __p1)
functionvpminnmqd_f64
__ai __attribute__((target("neon"))) float64_t vpminnmqd_f64(float64x2_t __p0)
functionvpminnms_f32
__ai __attribute__((target("neon"))) float32_t vpminnms_f32(float32x2_t __p0)