/*===---- arm_sve.h - ARM SVE intrinsics -----------------------------------===
 *
 *
 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 * See https://llvm.org/LICENSE.txt for license information.
 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 *
 *===-----------------------------------------------------------------------===
 */

#ifndef __ARM_SVE_H
#define __ARM_SVE_H

#if !defined(__ARM_FEATURE_SVE)
#error "SVE support not enabled"
#else

#if !defined(__LITTLE_ENDIAN__)
#error "Big endian is currently not supported for arm_sve.h"
#endif
#include <stdint.h>

#ifdef  __cplusplus
extern "C" {
#else
#include <stdbool.h>
#endif

typedef __fp16 float16_t;
typedef float float32_t;
typedef double float64_t;
typedef __SVInt8_t svint8_t;
typedef __SVInt16_t svint16_t;
typedef __SVInt32_t svint32_t;
typedef __SVInt64_t svint64_t;
typedef __SVUint8_t svuint8_t;
typedef __SVUint16_t svuint16_t;
typedef __SVUint32_t svuint32_t;
typedef __SVUint64_t svuint64_t;
typedef __SVFloat16_t svfloat16_t;

#if defined(__ARM_FEATURE_SVE_BF16) && !defined(__ARM_FEATURE_BF16_SCALAR_ARITHMETIC)
#error "__ARM_FEATURE_BF16_SCALAR_ARITHMETIC must be defined when __ARM_FEATURE_SVE_BF16 is defined"
#endif

#if defined(__ARM_FEATURE_SVE_BF16)
typedef __SVBFloat16_t svbfloat16_t;
#endif

#if defined(__ARM_FEATURE_BF16_SCALAR_ARITHMETIC)
#include <arm_bf16.h>
typedef __bf16 bfloat16_t;
#endif

typedef __SVFloat32_t svfloat32_t;
typedef __SVFloat64_t svfloat64_t;
typedef __clang_svint8x2_t svint8x2_t;
typedef __clang_svint16x2_t svint16x2_t;
typedef __clang_svint32x2_t svint32x2_t;
typedef __clang_svint64x2_t svint64x2_t;
typedef __clang_svuint8x2_t svuint8x2_t;
typedef __clang_svuint16x2_t svuint16x2_t;
typedef __clang_svuint32x2_t svuint32x2_t;
typedef __clang_svuint64x2_t svuint64x2_t;
typedef __clang_svfloat16x2_t svfloat16x2_t;
typedef __clang_svfloat32x2_t svfloat32x2_t;
typedef __clang_svfloat64x2_t svfloat64x2_t;
typedef __clang_svint8x3_t svint8x3_t;
typedef __clang_svint16x3_t svint16x3_t;
typedef __clang_svint32x3_t svint32x3_t;
typedef __clang_svint64x3_t svint64x3_t;
typedef __clang_svuint8x3_t svuint8x3_t;
typedef __clang_svuint16x3_t svuint16x3_t;
typedef __clang_svuint32x3_t svuint32x3_t;
typedef __clang_svuint64x3_t svuint64x3_t;
typedef __clang_svfloat16x3_t svfloat16x3_t;
typedef __clang_svfloat32x3_t svfloat32x3_t;
typedef __clang_svfloat64x3_t svfloat64x3_t;
typedef __clang_svint8x4_t svint8x4_t;
typedef __clang_svint16x4_t svint16x4_t;
typedef __clang_svint32x4_t svint32x4_t;
typedef __clang_svint64x4_t svint64x4_t;
typedef __clang_svuint8x4_t svuint8x4_t;
typedef __clang_svuint16x4_t svuint16x4_t;
typedef __clang_svuint32x4_t svuint32x4_t;
typedef __clang_svuint64x4_t svuint64x4_t;
typedef __clang_svfloat16x4_t svfloat16x4_t;
typedef __clang_svfloat32x4_t svfloat32x4_t;
typedef __clang_svfloat64x4_t svfloat64x4_t;
typedef __SVBool_t  svbool_t;

#ifdef __ARM_FEATURE_SVE_BF16
typedef __clang_svbfloat16x2_t svbfloat16x2_t;
typedef __clang_svbfloat16x3_t svbfloat16x3_t;
typedef __clang_svbfloat16x4_t svbfloat16x4_t;
#endif
enum svpattern
{
  SV_POW2 = 0,
  SV_VL1 = 1,
  SV_VL2 = 2,
  SV_VL3 = 3,
  SV_VL4 = 4,
  SV_VL5 = 5,
  SV_VL6 = 6,
  SV_VL7 = 7,
  SV_VL8 = 8,
  SV_VL16 = 9,
  SV_VL32 = 10,
  SV_VL64 = 11,
  SV_VL128 = 12,
  SV_VL256 = 13,
  SV_MUL4 = 29,
  SV_MUL3 = 30,
  SV_ALL = 31
};

enum svprfop
{
  SV_PLDL1KEEP = 0,
  SV_PLDL1STRM = 1,
  SV_PLDL2KEEP = 2,
  SV_PLDL2STRM = 3,
  SV_PLDL3KEEP = 4,
  SV_PLDL3STRM = 5,
  SV_PSTL1KEEP = 8,
  SV_PSTL1STRM = 9,
  SV_PSTL2KEEP = 10,
  SV_PSTL2STRM = 11,
  SV_PSTL3KEEP = 12,
  SV_PSTL3STRM = 13
};

/* Function attributes */
#define __ai static __inline__ __attribute__((__always_inline__, __nodebug__))

#define __aio static __inline__ __attribute__((__always_inline__, __nodebug__, __overloadable__))

#define svreinterpret_s8_s8(...) __builtin_sve_reinterpret_s8_s8(__VA_ARGS__)
#define svreinterpret_s8_s16(...) __builtin_sve_reinterpret_s8_s16(__VA_ARGS__)
#define svreinterpret_s8_s32(...) __builtin_sve_reinterpret_s8_s32(__VA_ARGS__)
#define svreinterpret_s8_s64(...) __builtin_sve_reinterpret_s8_s64(__VA_ARGS__)
#define svreinterpret_s8_u8(...) __builtin_sve_reinterpret_s8_u8(__VA_ARGS__)
#define svreinterpret_s8_u16(...) __builtin_sve_reinterpret_s8_u16(__VA_ARGS__)
#define svreinterpret_s8_u32(...) __builtin_sve_reinterpret_s8_u32(__VA_ARGS__)
#define svreinterpret_s8_u64(...) __builtin_sve_reinterpret_s8_u64(__VA_ARGS__)
#define svreinterpret_s8_f16(...) __builtin_sve_reinterpret_s8_f16(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_s8_bf16(...) __builtin_sve_reinterpret_s8_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_s8_f32(...) __builtin_sve_reinterpret_s8_f32(__VA_ARGS__)
#define svreinterpret_s8_f64(...) __builtin_sve_reinterpret_s8_f64(__VA_ARGS__)
#define svreinterpret_s16_s8(...) __builtin_sve_reinterpret_s16_s8(__VA_ARGS__)
#define svreinterpret_s16_s16(...) __builtin_sve_reinterpret_s16_s16(__VA_ARGS__)
#define svreinterpret_s16_s32(...) __builtin_sve_reinterpret_s16_s32(__VA_ARGS__)
#define svreinterpret_s16_s64(...) __builtin_sve_reinterpret_s16_s64(__VA_ARGS__)
#define svreinterpret_s16_u8(...) __builtin_sve_reinterpret_s16_u8(__VA_ARGS__)
#define svreinterpret_s16_u16(...) __builtin_sve_reinterpret_s16_u16(__VA_ARGS__)
#define svreinterpret_s16_u32(...) __builtin_sve_reinterpret_s16_u32(__VA_ARGS__)
#define svreinterpret_s16_u64(...) __builtin_sve_reinterpret_s16_u64(__VA_ARGS__)
#define svreinterpret_s16_f16(...) __builtin_sve_reinterpret_s16_f16(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_s16_bf16(...) __builtin_sve_reinterpret_s16_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_s16_f32(...) __builtin_sve_reinterpret_s16_f32(__VA_ARGS__)
#define svreinterpret_s16_f64(...) __builtin_sve_reinterpret_s16_f64(__VA_ARGS__)
#define svreinterpret_s32_s8(...) __builtin_sve_reinterpret_s32_s8(__VA_ARGS__)
#define svreinterpret_s32_s16(...) __builtin_sve_reinterpret_s32_s16(__VA_ARGS__)
#define svreinterpret_s32_s32(...) __builtin_sve_reinterpret_s32_s32(__VA_ARGS__)
#define svreinterpret_s32_s64(...) __builtin_sve_reinterpret_s32_s64(__VA_ARGS__)
#define svreinterpret_s32_u8(...) __builtin_sve_reinterpret_s32_u8(__VA_ARGS__)
#define svreinterpret_s32_u16(...) __builtin_sve_reinterpret_s32_u16(__VA_ARGS__)
#define svreinterpret_s32_u32(...) __builtin_sve_reinterpret_s32_u32(__VA_ARGS__)
#define svreinterpret_s32_u64(...) __builtin_sve_reinterpret_s32_u64(__VA_ARGS__)
#define svreinterpret_s32_f16(...) __builtin_sve_reinterpret_s32_f16(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_s32_bf16(...) __builtin_sve_reinterpret_s32_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_s32_f32(...) __builtin_sve_reinterpret_s32_f32(__VA_ARGS__)
#define svreinterpret_s32_f64(...) __builtin_sve_reinterpret_s32_f64(__VA_ARGS__)
#define svreinterpret_s64_s8(...) __builtin_sve_reinterpret_s64_s8(__VA_ARGS__)
#define svreinterpret_s64_s16(...) __builtin_sve_reinterpret_s64_s16(__VA_ARGS__)
#define svreinterpret_s64_s32(...) __builtin_sve_reinterpret_s64_s32(__VA_ARGS__)
#define svreinterpret_s64_s64(...) __builtin_sve_reinterpret_s64_s64(__VA_ARGS__)
#define svreinterpret_s64_u8(...) __builtin_sve_reinterpret_s64_u8(__VA_ARGS__)
#define svreinterpret_s64_u16(...) __builtin_sve_reinterpret_s64_u16(__VA_ARGS__)
#define svreinterpret_s64_u32(...) __builtin_sve_reinterpret_s64_u32(__VA_ARGS__)
#define svreinterpret_s64_u64(...) __builtin_sve_reinterpret_s64_u64(__VA_ARGS__)
#define svreinterpret_s64_f16(...) __builtin_sve_reinterpret_s64_f16(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_s64_bf16(...) __builtin_sve_reinterpret_s64_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_s64_f32(...) __builtin_sve_reinterpret_s64_f32(__VA_ARGS__)
#define svreinterpret_s64_f64(...) __builtin_sve_reinterpret_s64_f64(__VA_ARGS__)
#define svreinterpret_u8_s8(...) __builtin_sve_reinterpret_u8_s8(__VA_ARGS__)
#define svreinterpret_u8_s16(...) __builtin_sve_reinterpret_u8_s16(__VA_ARGS__)
#define svreinterpret_u8_s32(...) __builtin_sve_reinterpret_u8_s32(__VA_ARGS__)
#define svreinterpret_u8_s64(...) __builtin_sve_reinterpret_u8_s64(__VA_ARGS__)
#define svreinterpret_u8_u8(...) __builtin_sve_reinterpret_u8_u8(__VA_ARGS__)
#define svreinterpret_u8_u16(...) __builtin_sve_reinterpret_u8_u16(__VA_ARGS__)
#define svreinterpret_u8_u32(...) __builtin_sve_reinterpret_u8_u32(__VA_ARGS__)
#define svreinterpret_u8_u64(...) __builtin_sve_reinterpret_u8_u64(__VA_ARGS__)
#define svreinterpret_u8_f16(...) __builtin_sve_reinterpret_u8_f16(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_u8_bf16(...) __builtin_sve_reinterpret_u8_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_u8_f32(...) __builtin_sve_reinterpret_u8_f32(__VA_ARGS__)
#define svreinterpret_u8_f64(...) __builtin_sve_reinterpret_u8_f64(__VA_ARGS__)
#define svreinterpret_u16_s8(...) __builtin_sve_reinterpret_u16_s8(__VA_ARGS__)
#define svreinterpret_u16_s16(...) __builtin_sve_reinterpret_u16_s16(__VA_ARGS__)
#define svreinterpret_u16_s32(...) __builtin_sve_reinterpret_u16_s32(__VA_ARGS__)
#define svreinterpret_u16_s64(...) __builtin_sve_reinterpret_u16_s64(__VA_ARGS__)
#define svreinterpret_u16_u8(...) __builtin_sve_reinterpret_u16_u8(__VA_ARGS__)
#define svreinterpret_u16_u16(...) __builtin_sve_reinterpret_u16_u16(__VA_ARGS__)
#define svreinterpret_u16_u32(...) __builtin_sve_reinterpret_u16_u32(__VA_ARGS__)
#define svreinterpret_u16_u64(...) __builtin_sve_reinterpret_u16_u64(__VA_ARGS__)
#define svreinterpret_u16_f16(...) __builtin_sve_reinterpret_u16_f16(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_u16_bf16(...) __builtin_sve_reinterpret_u16_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_u16_f32(...) __builtin_sve_reinterpret_u16_f32(__VA_ARGS__)
#define svreinterpret_u16_f64(...) __builtin_sve_reinterpret_u16_f64(__VA_ARGS__)
#define svreinterpret_u32_s8(...) __builtin_sve_reinterpret_u32_s8(__VA_ARGS__)
#define svreinterpret_u32_s16(...) __builtin_sve_reinterpret_u32_s16(__VA_ARGS__)
#define svreinterpret_u32_s32(...) __builtin_sve_reinterpret_u32_s32(__VA_ARGS__)
#define svreinterpret_u32_s64(...) __builtin_sve_reinterpret_u32_s64(__VA_ARGS__)
#define svreinterpret_u32_u8(...) __builtin_sve_reinterpret_u32_u8(__VA_ARGS__)
#define svreinterpret_u32_u16(...) __builtin_sve_reinterpret_u32_u16(__VA_ARGS__)
#define svreinterpret_u32_u32(...) __builtin_sve_reinterpret_u32_u32(__VA_ARGS__)
#define svreinterpret_u32_u64(...) __builtin_sve_reinterpret_u32_u64(__VA_ARGS__)
#define svreinterpret_u32_f16(...) __builtin_sve_reinterpret_u32_f16(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_u32_bf16(...) __builtin_sve_reinterpret_u32_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_u32_f32(...) __builtin_sve_reinterpret_u32_f32(__VA_ARGS__)
#define svreinterpret_u32_f64(...) __builtin_sve_reinterpret_u32_f64(__VA_ARGS__)
#define svreinterpret_u64_s8(...) __builtin_sve_reinterpret_u64_s8(__VA_ARGS__)
#define svreinterpret_u64_s16(...) __builtin_sve_reinterpret_u64_s16(__VA_ARGS__)
#define svreinterpret_u64_s32(...) __builtin_sve_reinterpret_u64_s32(__VA_ARGS__)
#define svreinterpret_u64_s64(...) __builtin_sve_reinterpret_u64_s64(__VA_ARGS__)
#define svreinterpret_u64_u8(...) __builtin_sve_reinterpret_u64_u8(__VA_ARGS__)
#define svreinterpret_u64_u16(...) __builtin_sve_reinterpret_u64_u16(__VA_ARGS__)
#define svreinterpret_u64_u32(...) __builtin_sve_reinterpret_u64_u32(__VA_ARGS__)
#define svreinterpret_u64_u64(...) __builtin_sve_reinterpret_u64_u64(__VA_ARGS__)
#define svreinterpret_u64_f16(...) __builtin_sve_reinterpret_u64_f16(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_u64_bf16(...) __builtin_sve_reinterpret_u64_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_u64_f32(...) __builtin_sve_reinterpret_u64_f32(__VA_ARGS__)
#define svreinterpret_u64_f64(...) __builtin_sve_reinterpret_u64_f64(__VA_ARGS__)
#define svreinterpret_f16_s8(...) __builtin_sve_reinterpret_f16_s8(__VA_ARGS__)
#define svreinterpret_f16_s16(...) __builtin_sve_reinterpret_f16_s16(__VA_ARGS__)
#define svreinterpret_f16_s32(...) __builtin_sve_reinterpret_f16_s32(__VA_ARGS__)
#define svreinterpret_f16_s64(...) __builtin_sve_reinterpret_f16_s64(__VA_ARGS__)
#define svreinterpret_f16_u8(...) __builtin_sve_reinterpret_f16_u8(__VA_ARGS__)
#define svreinterpret_f16_u16(...) __builtin_sve_reinterpret_f16_u16(__VA_ARGS__)
#define svreinterpret_f16_u32(...) __builtin_sve_reinterpret_f16_u32(__VA_ARGS__)
#define svreinterpret_f16_u64(...) __builtin_sve_reinterpret_f16_u64(__VA_ARGS__)
#define svreinterpret_f16_f16(...) __builtin_sve_reinterpret_f16_f16(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_f16_bf16(...) __builtin_sve_reinterpret_f16_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_f16_f32(...) __builtin_sve_reinterpret_f16_f32(__VA_ARGS__)
#define svreinterpret_f16_f64(...) __builtin_sve_reinterpret_f16_f64(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_s8(...) __builtin_sve_reinterpret_bf16_s8(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_s16(...) __builtin_sve_reinterpret_bf16_s16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_s32(...) __builtin_sve_reinterpret_bf16_s32(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_s64(...) __builtin_sve_reinterpret_bf16_s64(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_u8(...) __builtin_sve_reinterpret_bf16_u8(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_u16(...) __builtin_sve_reinterpret_bf16_u16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_u32(...) __builtin_sve_reinterpret_bf16_u32(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_u64(...) __builtin_sve_reinterpret_bf16_u64(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_f16(...) __builtin_sve_reinterpret_bf16_f16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_bf16(...) __builtin_sve_reinterpret_bf16_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_f32(...) __builtin_sve_reinterpret_bf16_f32(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_bf16_f64(...) __builtin_sve_reinterpret_bf16_f64(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_f32_s8(...) __builtin_sve_reinterpret_f32_s8(__VA_ARGS__)
#define svreinterpret_f32_s16(...) __builtin_sve_reinterpret_f32_s16(__VA_ARGS__)
#define svreinterpret_f32_s32(...) __builtin_sve_reinterpret_f32_s32(__VA_ARGS__)
#define svreinterpret_f32_s64(...) __builtin_sve_reinterpret_f32_s64(__VA_ARGS__)
#define svreinterpret_f32_u8(...) __builtin_sve_reinterpret_f32_u8(__VA_ARGS__)
#define svreinterpret_f32_u16(...) __builtin_sve_reinterpret_f32_u16(__VA_ARGS__)
#define svreinterpret_f32_u32(...) __builtin_sve_reinterpret_f32_u32(__VA_ARGS__)
#define svreinterpret_f32_u64(...) __builtin_sve_reinterpret_f32_u64(__VA_ARGS__)
#define svreinterpret_f32_f16(...) __builtin_sve_reinterpret_f32_f16(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_f32_bf16(...) __builtin_sve_reinterpret_f32_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_f32_f32(...) __builtin_sve_reinterpret_f32_f32(__VA_ARGS__)
#define svreinterpret_f32_f64(...) __builtin_sve_reinterpret_f32_f64(__VA_ARGS__)
#define svreinterpret_f64_s8(...) __builtin_sve_reinterpret_f64_s8(__VA_ARGS__)
#define svreinterpret_f64_s16(...) __builtin_sve_reinterpret_f64_s16(__VA_ARGS__)
#define svreinterpret_f64_s32(...) __builtin_sve_reinterpret_f64_s32(__VA_ARGS__)
#define svreinterpret_f64_s64(...) __builtin_sve_reinterpret_f64_s64(__VA_ARGS__)
#define svreinterpret_f64_u8(...) __builtin_sve_reinterpret_f64_u8(__VA_ARGS__)
#define svreinterpret_f64_u16(...) __builtin_sve_reinterpret_f64_u16(__VA_ARGS__)
#define svreinterpret_f64_u32(...) __builtin_sve_reinterpret_f64_u32(__VA_ARGS__)
#define svreinterpret_f64_u64(...) __builtin_sve_reinterpret_f64_u64(__VA_ARGS__)
#define svreinterpret_f64_f16(...) __builtin_sve_reinterpret_f64_f16(__VA_ARGS__)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svreinterpret_f64_bf16(...) __builtin_sve_reinterpret_f64_bf16(__VA_ARGS__)
#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#define svreinterpret_f64_f32(...) __builtin_sve_reinterpret_f64_f32(__VA_ARGS__)
#define svreinterpret_f64_f64(...) __builtin_sve_reinterpret_f64_f64(__VA_ARGS__)
__aio svint8_t svreinterpret_s8(svint8_t op) {
  return __builtin_sve_reinterpret_s8_s8(op);
}

__aio svint8_t svreinterpret_s8(svint16_t op) {
  return __builtin_sve_reinterpret_s8_s16(op);
}

__aio svint8_t svreinterpret_s8(svint32_t op) {
  return __builtin_sve_reinterpret_s8_s32(op);
}

__aio svint8_t svreinterpret_s8(svint64_t op) {
  return __builtin_sve_reinterpret_s8_s64(op);
}

__aio svint8_t svreinterpret_s8(svuint8_t op) {
  return __builtin_sve_reinterpret_s8_u8(op);
}

__aio svint8_t svreinterpret_s8(svuint16_t op) {
  return __builtin_sve_reinterpret_s8_u16(op);
}

__aio svint8_t svreinterpret_s8(svuint32_t op) {
  return __builtin_sve_reinterpret_s8_u32(op);
}

__aio svint8_t svreinterpret_s8(svuint64_t op) {
  return __builtin_sve_reinterpret_s8_u64(op);
}

__aio svint8_t svreinterpret_s8(svfloat16_t op) {
  return __builtin_sve_reinterpret_s8_f16(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svint8_t svreinterpret_s8(svbfloat16_t op) {
  return __builtin_sve_reinterpret_s8_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svint8_t svreinterpret_s8(svfloat32_t op) {
  return __builtin_sve_reinterpret_s8_f32(op);
}

__aio svint8_t svreinterpret_s8(svfloat64_t op) {
  return __builtin_sve_reinterpret_s8_f64(op);
}

__aio svint16_t svreinterpret_s16(svint8_t op) {
  return __builtin_sve_reinterpret_s16_s8(op);
}

__aio svint16_t svreinterpret_s16(svint16_t op) {
  return __builtin_sve_reinterpret_s16_s16(op);
}

__aio svint16_t svreinterpret_s16(svint32_t op) {
  return __builtin_sve_reinterpret_s16_s32(op);
}

__aio svint16_t svreinterpret_s16(svint64_t op) {
  return __builtin_sve_reinterpret_s16_s64(op);
}

__aio svint16_t svreinterpret_s16(svuint8_t op) {
  return __builtin_sve_reinterpret_s16_u8(op);
}

__aio svint16_t svreinterpret_s16(svuint16_t op) {
  return __builtin_sve_reinterpret_s16_u16(op);
}

__aio svint16_t svreinterpret_s16(svuint32_t op) {
  return __builtin_sve_reinterpret_s16_u32(op);
}

__aio svint16_t svreinterpret_s16(svuint64_t op) {
  return __builtin_sve_reinterpret_s16_u64(op);
}

__aio svint16_t svreinterpret_s16(svfloat16_t op) {
  return __builtin_sve_reinterpret_s16_f16(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svint16_t svreinterpret_s16(svbfloat16_t op) {
  return __builtin_sve_reinterpret_s16_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svint16_t svreinterpret_s16(svfloat32_t op) {
  return __builtin_sve_reinterpret_s16_f32(op);
}

__aio svint16_t svreinterpret_s16(svfloat64_t op) {
  return __builtin_sve_reinterpret_s16_f64(op);
}

__aio svint32_t svreinterpret_s32(svint8_t op) {
  return __builtin_sve_reinterpret_s32_s8(op);
}

__aio svint32_t svreinterpret_s32(svint16_t op) {
  return __builtin_sve_reinterpret_s32_s16(op);
}

__aio svint32_t svreinterpret_s32(svint32_t op) {
  return __builtin_sve_reinterpret_s32_s32(op);
}

__aio svint32_t svreinterpret_s32(svint64_t op) {
  return __builtin_sve_reinterpret_s32_s64(op);
}

__aio svint32_t svreinterpret_s32(svuint8_t op) {
  return __builtin_sve_reinterpret_s32_u8(op);
}

__aio svint32_t svreinterpret_s32(svuint16_t op) {
  return __builtin_sve_reinterpret_s32_u16(op);
}

__aio svint32_t svreinterpret_s32(svuint32_t op) {
  return __builtin_sve_reinterpret_s32_u32(op);
}

__aio svint32_t svreinterpret_s32(svuint64_t op) {
  return __builtin_sve_reinterpret_s32_u64(op);
}

__aio svint32_t svreinterpret_s32(svfloat16_t op) {
  return __builtin_sve_reinterpret_s32_f16(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svint32_t svreinterpret_s32(svbfloat16_t op) {
  return __builtin_sve_reinterpret_s32_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svint32_t svreinterpret_s32(svfloat32_t op) {
  return __builtin_sve_reinterpret_s32_f32(op);
}

__aio svint32_t svreinterpret_s32(svfloat64_t op) {
  return __builtin_sve_reinterpret_s32_f64(op);
}

__aio svint64_t svreinterpret_s64(svint8_t op) {
  return __builtin_sve_reinterpret_s64_s8(op);
}

__aio svint64_t svreinterpret_s64(svint16_t op) {
  return __builtin_sve_reinterpret_s64_s16(op);
}

__aio svint64_t svreinterpret_s64(svint32_t op) {
  return __builtin_sve_reinterpret_s64_s32(op);
}

__aio svint64_t svreinterpret_s64(svint64_t op) {
  return __builtin_sve_reinterpret_s64_s64(op);
}

__aio svint64_t svreinterpret_s64(svuint8_t op) {
  return __builtin_sve_reinterpret_s64_u8(op);
}

__aio svint64_t svreinterpret_s64(svuint16_t op) {
  return __builtin_sve_reinterpret_s64_u16(op);
}

__aio svint64_t svreinterpret_s64(svuint32_t op) {
  return __builtin_sve_reinterpret_s64_u32(op);
}

__aio svint64_t svreinterpret_s64(svuint64_t op) {
  return __builtin_sve_reinterpret_s64_u64(op);
}

__aio svint64_t svreinterpret_s64(svfloat16_t op) {
  return __builtin_sve_reinterpret_s64_f16(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svint64_t svreinterpret_s64(svbfloat16_t op) {
  return __builtin_sve_reinterpret_s64_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svint64_t svreinterpret_s64(svfloat32_t op) {
  return __builtin_sve_reinterpret_s64_f32(op);
}

__aio svint64_t svreinterpret_s64(svfloat64_t op) {
  return __builtin_sve_reinterpret_s64_f64(op);
}

__aio svuint8_t svreinterpret_u8(svint8_t op) {
  return __builtin_sve_reinterpret_u8_s8(op);
}

__aio svuint8_t svreinterpret_u8(svint16_t op) {
  return __builtin_sve_reinterpret_u8_s16(op);
}

__aio svuint8_t svreinterpret_u8(svint32_t op) {
  return __builtin_sve_reinterpret_u8_s32(op);
}

__aio svuint8_t svreinterpret_u8(svint64_t op) {
  return __builtin_sve_reinterpret_u8_s64(op);
}

__aio svuint8_t svreinterpret_u8(svuint8_t op) {
  return __builtin_sve_reinterpret_u8_u8(op);
}

__aio svuint8_t svreinterpret_u8(svuint16_t op) {
  return __builtin_sve_reinterpret_u8_u16(op);
}

__aio svuint8_t svreinterpret_u8(svuint32_t op) {
  return __builtin_sve_reinterpret_u8_u32(op);
}

__aio svuint8_t svreinterpret_u8(svuint64_t op) {
  return __builtin_sve_reinterpret_u8_u64(op);
}

__aio svuint8_t svreinterpret_u8(svfloat16_t op) {
  return __builtin_sve_reinterpret_u8_f16(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svuint8_t svreinterpret_u8(svbfloat16_t op) {
  return __builtin_sve_reinterpret_u8_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svuint8_t svreinterpret_u8(svfloat32_t op) {
  return __builtin_sve_reinterpret_u8_f32(op);
}

__aio svuint8_t svreinterpret_u8(svfloat64_t op) {
  return __builtin_sve_reinterpret_u8_f64(op);
}

__aio svuint16_t svreinterpret_u16(svint8_t op) {
  return __builtin_sve_reinterpret_u16_s8(op);
}

__aio svuint16_t svreinterpret_u16(svint16_t op) {
  return __builtin_sve_reinterpret_u16_s16(op);
}

__aio svuint16_t svreinterpret_u16(svint32_t op) {
  return __builtin_sve_reinterpret_u16_s32(op);
}

__aio svuint16_t svreinterpret_u16(svint64_t op) {
  return __builtin_sve_reinterpret_u16_s64(op);
}

__aio svuint16_t svreinterpret_u16(svuint8_t op) {
  return __builtin_sve_reinterpret_u16_u8(op);
}

__aio svuint16_t svreinterpret_u16(svuint16_t op) {
  return __builtin_sve_reinterpret_u16_u16(op);
}

__aio svuint16_t svreinterpret_u16(svuint32_t op) {
  return __builtin_sve_reinterpret_u16_u32(op);
}

__aio svuint16_t svreinterpret_u16(svuint64_t op) {
  return __builtin_sve_reinterpret_u16_u64(op);
}

__aio svuint16_t svreinterpret_u16(svfloat16_t op) {
  return __builtin_sve_reinterpret_u16_f16(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svuint16_t svreinterpret_u16(svbfloat16_t op) {
  return __builtin_sve_reinterpret_u16_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svuint16_t svreinterpret_u16(svfloat32_t op) {
  return __builtin_sve_reinterpret_u16_f32(op);
}

__aio svuint16_t svreinterpret_u16(svfloat64_t op) {
  return __builtin_sve_reinterpret_u16_f64(op);
}

__aio svuint32_t svreinterpret_u32(svint8_t op) {
  return __builtin_sve_reinterpret_u32_s8(op);
}

__aio svuint32_t svreinterpret_u32(svint16_t op) {
  return __builtin_sve_reinterpret_u32_s16(op);
}

__aio svuint32_t svreinterpret_u32(svint32_t op) {
  return __builtin_sve_reinterpret_u32_s32(op);
}

__aio svuint32_t svreinterpret_u32(svint64_t op) {
  return __builtin_sve_reinterpret_u32_s64(op);
}

__aio svuint32_t svreinterpret_u32(svuint8_t op) {
  return __builtin_sve_reinterpret_u32_u8(op);
}

__aio svuint32_t svreinterpret_u32(svuint16_t op) {
  return __builtin_sve_reinterpret_u32_u16(op);
}

__aio svuint32_t svreinterpret_u32(svuint32_t op) {
  return __builtin_sve_reinterpret_u32_u32(op);
}

__aio svuint32_t svreinterpret_u32(svuint64_t op) {
  return __builtin_sve_reinterpret_u32_u64(op);
}

__aio svuint32_t svreinterpret_u32(svfloat16_t op) {
  return __builtin_sve_reinterpret_u32_f16(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svuint32_t svreinterpret_u32(svbfloat16_t op) {
  return __builtin_sve_reinterpret_u32_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svuint32_t svreinterpret_u32(svfloat32_t op) {
  return __builtin_sve_reinterpret_u32_f32(op);
}

__aio svuint32_t svreinterpret_u32(svfloat64_t op) {
  return __builtin_sve_reinterpret_u32_f64(op);
}

__aio svuint64_t svreinterpret_u64(svint8_t op) {
  return __builtin_sve_reinterpret_u64_s8(op);
}

__aio svuint64_t svreinterpret_u64(svint16_t op) {
  return __builtin_sve_reinterpret_u64_s16(op);
}

__aio svuint64_t svreinterpret_u64(svint32_t op) {
  return __builtin_sve_reinterpret_u64_s32(op);
}

__aio svuint64_t svreinterpret_u64(svint64_t op) {
  return __builtin_sve_reinterpret_u64_s64(op);
}

__aio svuint64_t svreinterpret_u64(svuint8_t op) {
  return __builtin_sve_reinterpret_u64_u8(op);
}

__aio svuint64_t svreinterpret_u64(svuint16_t op) {
  return __builtin_sve_reinterpret_u64_u16(op);
}

__aio svuint64_t svreinterpret_u64(svuint32_t op) {
  return __builtin_sve_reinterpret_u64_u32(op);
}

__aio svuint64_t svreinterpret_u64(svuint64_t op) {
  return __builtin_sve_reinterpret_u64_u64(op);
}

__aio svuint64_t svreinterpret_u64(svfloat16_t op) {
  return __builtin_sve_reinterpret_u64_f16(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svuint64_t svreinterpret_u64(svbfloat16_t op) {
  return __builtin_sve_reinterpret_u64_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svuint64_t svreinterpret_u64(svfloat32_t op) {
  return __builtin_sve_reinterpret_u64_f32(op);
}

__aio svuint64_t svreinterpret_u64(svfloat64_t op) {
  return __builtin_sve_reinterpret_u64_f64(op);
}

__aio svfloat16_t svreinterpret_f16(svint8_t op) {
  return __builtin_sve_reinterpret_f16_s8(op);
}

__aio svfloat16_t svreinterpret_f16(svint16_t op) {
  return __builtin_sve_reinterpret_f16_s16(op);
}

__aio svfloat16_t svreinterpret_f16(svint32_t op) {
  return __builtin_sve_reinterpret_f16_s32(op);
}

__aio svfloat16_t svreinterpret_f16(svint64_t op) {
  return __builtin_sve_reinterpret_f16_s64(op);
}

__aio svfloat16_t svreinterpret_f16(svuint8_t op) {
  return __builtin_sve_reinterpret_f16_u8(op);
}

__aio svfloat16_t svreinterpret_f16(svuint16_t op) {
  return __builtin_sve_reinterpret_f16_u16(op);
}

__aio svfloat16_t svreinterpret_f16(svuint32_t op) {
  return __builtin_sve_reinterpret_f16_u32(op);
}

__aio svfloat16_t svreinterpret_f16(svuint64_t op) {
  return __builtin_sve_reinterpret_f16_u64(op);
}

__aio svfloat16_t svreinterpret_f16(svfloat16_t op) {
  return __builtin_sve_reinterpret_f16_f16(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svfloat16_t svreinterpret_f16(svbfloat16_t op) {
  return __builtin_sve_reinterpret_f16_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svfloat16_t svreinterpret_f16(svfloat32_t op) {
  return __builtin_sve_reinterpret_f16_f32(op);
}

__aio svfloat16_t svreinterpret_f16(svfloat64_t op) {
  return __builtin_sve_reinterpret_f16_f64(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svint8_t op) {
  return __builtin_sve_reinterpret_bf16_s8(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svint16_t op) {
  return __builtin_sve_reinterpret_bf16_s16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svint32_t op) {
  return __builtin_sve_reinterpret_bf16_s32(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svint64_t op) {
  return __builtin_sve_reinterpret_bf16_s64(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svuint8_t op) {
  return __builtin_sve_reinterpret_bf16_u8(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svuint16_t op) {
  return __builtin_sve_reinterpret_bf16_u16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svuint32_t op) {
  return __builtin_sve_reinterpret_bf16_u32(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svuint64_t op) {
  return __builtin_sve_reinterpret_bf16_u64(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svfloat16_t op) {
  return __builtin_sve_reinterpret_bf16_f16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svbfloat16_t op) {
  return __builtin_sve_reinterpret_bf16_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svfloat32_t op) {
  return __builtin_sve_reinterpret_bf16_f32(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
#if defined(__ARM_FEATURE_SVE_BF16)
__aio svbfloat16_t svreinterpret_bf16(svfloat64_t op) {
  return __builtin_sve_reinterpret_bf16_f64(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svfloat32_t svreinterpret_f32(svint8_t op) {
  return __builtin_sve_reinterpret_f32_s8(op);
}

__aio svfloat32_t svreinterpret_f32(svint16_t op) {
  return __builtin_sve_reinterpret_f32_s16(op);
}

__aio svfloat32_t svreinterpret_f32(svint32_t op) {
  return __builtin_sve_reinterpret_f32_s32(op);
}

__aio svfloat32_t svreinterpret_f32(svint64_t op) {
  return __builtin_sve_reinterpret_f32_s64(op);
}

__aio svfloat32_t svreinterpret_f32(svuint8_t op) {
  return __builtin_sve_reinterpret_f32_u8(op);
}

__aio svfloat32_t svreinterpret_f32(svuint16_t op) {
  return __builtin_sve_reinterpret_f32_u16(op);
}

__aio svfloat32_t svreinterpret_f32(svuint32_t op) {
  return __builtin_sve_reinterpret_f32_u32(op);
}

__aio svfloat32_t svreinterpret_f32(svuint64_t op) {
  return __builtin_sve_reinterpret_f32_u64(op);
}

__aio svfloat32_t svreinterpret_f32(svfloat16_t op) {
  return __builtin_sve_reinterpret_f32_f16(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svfloat32_t svreinterpret_f32(svbfloat16_t op) {
  return __builtin_sve_reinterpret_f32_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svfloat32_t svreinterpret_f32(svfloat32_t op) {
  return __builtin_sve_reinterpret_f32_f32(op);
}

__aio svfloat32_t svreinterpret_f32(svfloat64_t op) {
  return __builtin_sve_reinterpret_f32_f64(op);
}

__aio svfloat64_t svreinterpret_f64(svint8_t op) {
  return __builtin_sve_reinterpret_f64_s8(op);
}

__aio svfloat64_t svreinterpret_f64(svint16_t op) {
  return __builtin_sve_reinterpret_f64_s16(op);
}

__aio svfloat64_t svreinterpret_f64(svint32_t op) {
  return __builtin_sve_reinterpret_f64_s32(op);
}

__aio svfloat64_t svreinterpret_f64(svint64_t op) {
  return __builtin_sve_reinterpret_f64_s64(op);
}

__aio svfloat64_t svreinterpret_f64(svuint8_t op) {
  return __builtin_sve_reinterpret_f64_u8(op);
}

__aio svfloat64_t svreinterpret_f64(svuint16_t op) {
  return __builtin_sve_reinterpret_f64_u16(op);
}

__aio svfloat64_t svreinterpret_f64(svuint32_t op) {
  return __builtin_sve_reinterpret_f64_u32(op);
}

__aio svfloat64_t svreinterpret_f64(svuint64_t op) {
  return __builtin_sve_reinterpret_f64_u64(op);
}

__aio svfloat64_t svreinterpret_f64(svfloat16_t op) {
  return __builtin_sve_reinterpret_f64_f16(op);
}

#if defined(__ARM_FEATURE_SVE_BF16)
__aio svfloat64_t svreinterpret_f64(svbfloat16_t op) {
  return __builtin_sve_reinterpret_f64_bf16(op);
}

#endif /* #if defined(__ARM_FEATURE_SVE_BF16) */
__aio svfloat64_t svreinterpret_f64(svfloat32_t op) {
  return __builtin_sve_reinterpret_f64_f32(op);
}

__aio svfloat64_t svreinterpret_f64(svfloat64_t op) {
  return __builtin_sve_reinterpret_f64_f64(op);
}

__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f64_m)))
svfloat64_t svabd_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f32_m)))
svfloat32_t svabd_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f16_m)))
svfloat16_t svabd_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f64_x)))
svfloat64_t svabd_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f32_x)))
svfloat32_t svabd_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f16_x)))
svfloat16_t svabd_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f64_z)))
svfloat64_t svabd_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f32_z)))
svfloat32_t svabd_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f16_z)))
svfloat16_t svabd_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s8_m)))
svint8_t svabd_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s32_m)))
svint32_t svabd_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s64_m)))
svint64_t svabd_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s16_m)))
svint16_t svabd_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s8_x)))
svint8_t svabd_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s32_x)))
svint32_t svabd_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s64_x)))
svint64_t svabd_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s16_x)))
svint16_t svabd_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s8_z)))
svint8_t svabd_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s32_z)))
svint32_t svabd_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s64_z)))
svint64_t svabd_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s16_z)))
svint16_t svabd_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u8_m)))
svuint8_t svabd_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u32_m)))
svuint32_t svabd_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u64_m)))
svuint64_t svabd_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u16_m)))
svuint16_t svabd_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u8_x)))
svuint8_t svabd_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u32_x)))
svuint32_t svabd_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u64_x)))
svuint64_t svabd_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u16_x)))
svuint16_t svabd_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u8_z)))
svuint8_t svabd_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u32_z)))
svuint32_t svabd_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u64_z)))
svuint64_t svabd_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u16_z)))
svuint16_t svabd_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f64_m)))
svfloat64_t svabd_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f32_m)))
svfloat32_t svabd_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f16_m)))
svfloat16_t svabd_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f64_x)))
svfloat64_t svabd_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f32_x)))
svfloat32_t svabd_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f16_x)))
svfloat16_t svabd_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f64_z)))
svfloat64_t svabd_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f32_z)))
svfloat32_t svabd_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f16_z)))
svfloat16_t svabd_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s8_m)))
svint8_t svabd_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s32_m)))
svint32_t svabd_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s64_m)))
svint64_t svabd_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s16_m)))
svint16_t svabd_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s8_x)))
svint8_t svabd_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s32_x)))
svint32_t svabd_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s64_x)))
svint64_t svabd_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s16_x)))
svint16_t svabd_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s8_z)))
svint8_t svabd_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s32_z)))
svint32_t svabd_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s64_z)))
svint64_t svabd_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s16_z)))
svint16_t svabd_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u8_m)))
svuint8_t svabd_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u32_m)))
svuint32_t svabd_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u64_m)))
svuint64_t svabd_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u16_m)))
svuint16_t svabd_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u8_x)))
svuint8_t svabd_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u32_x)))
svuint32_t svabd_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u64_x)))
svuint64_t svabd_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u16_x)))
svuint16_t svabd_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u8_z)))
svuint8_t svabd_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u32_z)))
svuint32_t svabd_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u64_z)))
svuint64_t svabd_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u16_z)))
svuint16_t svabd_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f64_m)))
svfloat64_t svabs_f64_m(svfloat64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f32_m)))
svfloat32_t svabs_f32_m(svfloat32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f16_m)))
svfloat16_t svabs_f16_m(svfloat16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f64_x)))
svfloat64_t svabs_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f32_x)))
svfloat32_t svabs_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f16_x)))
svfloat16_t svabs_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f64_z)))
svfloat64_t svabs_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f32_z)))
svfloat32_t svabs_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f16_z)))
svfloat16_t svabs_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s8_m)))
svint8_t svabs_s8_m(svint8_t, svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s32_m)))
svint32_t svabs_s32_m(svint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s64_m)))
svint64_t svabs_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s16_m)))
svint16_t svabs_s16_m(svint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s8_x)))
svint8_t svabs_s8_x(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s32_x)))
svint32_t svabs_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s64_x)))
svint64_t svabs_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s16_x)))
svint16_t svabs_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s8_z)))
svint8_t svabs_s8_z(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s32_z)))
svint32_t svabs_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s64_z)))
svint64_t svabs_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s16_z)))
svint16_t svabs_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_n_f64)))
svbool_t svacge_n_f64(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_n_f32)))
svbool_t svacge_n_f32(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_n_f16)))
svbool_t svacge_n_f16(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_f64)))
svbool_t svacge_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_f32)))
svbool_t svacge_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_f16)))
svbool_t svacge_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_n_f64)))
svbool_t svacgt_n_f64(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_n_f32)))
svbool_t svacgt_n_f32(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_n_f16)))
svbool_t svacgt_n_f16(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_f64)))
svbool_t svacgt_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_f32)))
svbool_t svacgt_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_f16)))
svbool_t svacgt_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_n_f64)))
svbool_t svacle_n_f64(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_n_f32)))
svbool_t svacle_n_f32(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_n_f16)))
svbool_t svacle_n_f16(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_f64)))
svbool_t svacle_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_f32)))
svbool_t svacle_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_f16)))
svbool_t svacle_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_n_f64)))
svbool_t svaclt_n_f64(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_n_f32)))
svbool_t svaclt_n_f32(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_n_f16)))
svbool_t svaclt_n_f16(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_f64)))
svbool_t svaclt_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_f32)))
svbool_t svaclt_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_f16)))
svbool_t svaclt_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f64_m)))
svfloat64_t svadd_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f32_m)))
svfloat32_t svadd_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f16_m)))
svfloat16_t svadd_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f64_x)))
svfloat64_t svadd_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f32_x)))
svfloat32_t svadd_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f16_x)))
svfloat16_t svadd_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f64_z)))
svfloat64_t svadd_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f32_z)))
svfloat32_t svadd_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f16_z)))
svfloat16_t svadd_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u8_m)))
svuint8_t svadd_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u32_m)))
svuint32_t svadd_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u64_m)))
svuint64_t svadd_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u16_m)))
svuint16_t svadd_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s8_m)))
svint8_t svadd_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s32_m)))
svint32_t svadd_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s64_m)))
svint64_t svadd_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s16_m)))
svint16_t svadd_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u8_x)))
svuint8_t svadd_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u32_x)))
svuint32_t svadd_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u64_x)))
svuint64_t svadd_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u16_x)))
svuint16_t svadd_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s8_x)))
svint8_t svadd_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s32_x)))
svint32_t svadd_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s64_x)))
svint64_t svadd_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s16_x)))
svint16_t svadd_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u8_z)))
svuint8_t svadd_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u32_z)))
svuint32_t svadd_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u64_z)))
svuint64_t svadd_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u16_z)))
svuint16_t svadd_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s8_z)))
svint8_t svadd_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s32_z)))
svint32_t svadd_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s64_z)))
svint64_t svadd_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s16_z)))
svint16_t svadd_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f64_m)))
svfloat64_t svadd_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f32_m)))
svfloat32_t svadd_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f16_m)))
svfloat16_t svadd_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f64_x)))
svfloat64_t svadd_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f32_x)))
svfloat32_t svadd_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f16_x)))
svfloat16_t svadd_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f64_z)))
svfloat64_t svadd_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f32_z)))
svfloat32_t svadd_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f16_z)))
svfloat16_t svadd_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u8_m)))
svuint8_t svadd_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u32_m)))
svuint32_t svadd_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u64_m)))
svuint64_t svadd_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u16_m)))
svuint16_t svadd_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s8_m)))
svint8_t svadd_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s32_m)))
svint32_t svadd_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s64_m)))
svint64_t svadd_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s16_m)))
svint16_t svadd_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u8_x)))
svuint8_t svadd_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u32_x)))
svuint32_t svadd_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u64_x)))
svuint64_t svadd_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u16_x)))
svuint16_t svadd_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s8_x)))
svint8_t svadd_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s32_x)))
svint32_t svadd_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s64_x)))
svint64_t svadd_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s16_x)))
svint16_t svadd_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u8_z)))
svuint8_t svadd_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u32_z)))
svuint32_t svadd_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u64_z)))
svuint64_t svadd_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u16_z)))
svuint16_t svadd_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s8_z)))
svint8_t svadd_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s32_z)))
svint32_t svadd_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s64_z)))
svint64_t svadd_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s16_z)))
svint16_t svadd_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadda_f64)))
float64_t svadda_f64(svbool_t, float64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadda_f32)))
float32_t svadda_f32(svbool_t, float32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadda_f16)))
float16_t svadda_f16(svbool_t, float16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_s8)))
int64_t svaddv_s8(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_s32)))
int64_t svaddv_s32(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_s64)))
int64_t svaddv_s64(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_s16)))
int64_t svaddv_s16(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_u8)))
uint64_t svaddv_u8(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_u32)))
uint64_t svaddv_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_u64)))
uint64_t svaddv_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_u16)))
uint64_t svaddv_u16(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_f64)))
float64_t svaddv_f64(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_f32)))
float32_t svaddv_f32(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_f16)))
float16_t svaddv_f16(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrb_u32base_u32offset)))
svuint32_t svadrb_u32base_u32offset(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrb_u64base_u64offset)))
svuint64_t svadrb_u64base_u64offset(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrb_u32base_s32offset)))
svuint32_t svadrb_u32base_s32offset(svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrb_u64base_s64offset)))
svuint64_t svadrb_u64base_s64offset(svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrd_u32base_u32index)))
svuint32_t svadrd_u32base_u32index(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrd_u64base_u64index)))
svuint64_t svadrd_u64base_u64index(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrd_u32base_s32index)))
svuint32_t svadrd_u32base_s32index(svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrd_u64base_s64index)))
svuint64_t svadrd_u64base_s64index(svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrh_u32base_u32index)))
svuint32_t svadrh_u32base_u32index(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrh_u64base_u64index)))
svuint64_t svadrh_u64base_u64index(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrh_u32base_s32index)))
svuint32_t svadrh_u32base_s32index(svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrh_u64base_s64index)))
svuint64_t svadrh_u64base_s64index(svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrw_u32base_u32index)))
svuint32_t svadrw_u32base_u32index(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrw_u64base_u64index)))
svuint64_t svadrw_u64base_u64index(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrw_u32base_s32index)))
svuint32_t svadrw_u32base_s32index(svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrw_u64base_s64index)))
svuint64_t svadrw_u64base_s64index(svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_b_z)))
svbool_t svand_b_z(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u8_m)))
svuint8_t svand_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u32_m)))
svuint32_t svand_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u64_m)))
svuint64_t svand_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u16_m)))
svuint16_t svand_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s8_m)))
svint8_t svand_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s32_m)))
svint32_t svand_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s64_m)))
svint64_t svand_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s16_m)))
svint16_t svand_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u8_x)))
svuint8_t svand_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u32_x)))
svuint32_t svand_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u64_x)))
svuint64_t svand_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u16_x)))
svuint16_t svand_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s8_x)))
svint8_t svand_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s32_x)))
svint32_t svand_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s64_x)))
svint64_t svand_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s16_x)))
svint16_t svand_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u8_z)))
svuint8_t svand_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u32_z)))
svuint32_t svand_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u64_z)))
svuint64_t svand_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u16_z)))
svuint16_t svand_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s8_z)))
svint8_t svand_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s32_z)))
svint32_t svand_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s64_z)))
svint64_t svand_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s16_z)))
svint16_t svand_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u8_m)))
svuint8_t svand_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u32_m)))
svuint32_t svand_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u64_m)))
svuint64_t svand_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u16_m)))
svuint16_t svand_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s8_m)))
svint8_t svand_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s32_m)))
svint32_t svand_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s64_m)))
svint64_t svand_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s16_m)))
svint16_t svand_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u8_x)))
svuint8_t svand_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u32_x)))
svuint32_t svand_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u64_x)))
svuint64_t svand_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u16_x)))
svuint16_t svand_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s8_x)))
svint8_t svand_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s32_x)))
svint32_t svand_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s64_x)))
svint64_t svand_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s16_x)))
svint16_t svand_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u8_z)))
svuint8_t svand_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u32_z)))
svuint32_t svand_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u64_z)))
svuint64_t svand_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u16_z)))
svuint16_t svand_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s8_z)))
svint8_t svand_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s32_z)))
svint32_t svand_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s64_z)))
svint64_t svand_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s16_z)))
svint16_t svand_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_u8)))
uint8_t svandv_u8(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_u32)))
uint32_t svandv_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_u64)))
uint64_t svandv_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_u16)))
uint16_t svandv_u16(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_s8)))
int8_t svandv_s8(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_s32)))
int32_t svandv_s32(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_s64)))
int64_t svandv_s64(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_s16)))
int16_t svandv_s16(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s8_m)))
svint8_t svasr_n_s8_m(svbool_t, svint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s32_m)))
svint32_t svasr_n_s32_m(svbool_t, svint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s64_m)))
svint64_t svasr_n_s64_m(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s16_m)))
svint16_t svasr_n_s16_m(svbool_t, svint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s8_x)))
svint8_t svasr_n_s8_x(svbool_t, svint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s32_x)))
svint32_t svasr_n_s32_x(svbool_t, svint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s64_x)))
svint64_t svasr_n_s64_x(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s16_x)))
svint16_t svasr_n_s16_x(svbool_t, svint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s8_z)))
svint8_t svasr_n_s8_z(svbool_t, svint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s32_z)))
svint32_t svasr_n_s32_z(svbool_t, svint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s64_z)))
svint64_t svasr_n_s64_z(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s16_z)))
svint16_t svasr_n_s16_z(svbool_t, svint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s8_m)))
svint8_t svasr_s8_m(svbool_t, svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s32_m)))
svint32_t svasr_s32_m(svbool_t, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s64_m)))
svint64_t svasr_s64_m(svbool_t, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s16_m)))
svint16_t svasr_s16_m(svbool_t, svint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s8_x)))
svint8_t svasr_s8_x(svbool_t, svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s32_x)))
svint32_t svasr_s32_x(svbool_t, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s64_x)))
svint64_t svasr_s64_x(svbool_t, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s16_x)))
svint16_t svasr_s16_x(svbool_t, svint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s8_z)))
svint8_t svasr_s8_z(svbool_t, svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s32_z)))
svint32_t svasr_s32_z(svbool_t, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s64_z)))
svint64_t svasr_s64_z(svbool_t, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s16_z)))
svint16_t svasr_s16_z(svbool_t, svint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s8_m)))
svint8_t svasr_wide_n_s8_m(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s32_m)))
svint32_t svasr_wide_n_s32_m(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s16_m)))
svint16_t svasr_wide_n_s16_m(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s8_x)))
svint8_t svasr_wide_n_s8_x(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s32_x)))
svint32_t svasr_wide_n_s32_x(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s16_x)))
svint16_t svasr_wide_n_s16_x(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s8_z)))
svint8_t svasr_wide_n_s8_z(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s32_z)))
svint32_t svasr_wide_n_s32_z(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s16_z)))
svint16_t svasr_wide_n_s16_z(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s8_m)))
svint8_t svasr_wide_s8_m(svbool_t, svint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s32_m)))
svint32_t svasr_wide_s32_m(svbool_t, svint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s16_m)))
svint16_t svasr_wide_s16_m(svbool_t, svint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s8_x)))
svint8_t svasr_wide_s8_x(svbool_t, svint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s32_x)))
svint32_t svasr_wide_s32_x(svbool_t, svint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s16_x)))
svint16_t svasr_wide_s16_x(svbool_t, svint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s8_z)))
svint8_t svasr_wide_s8_z(svbool_t, svint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s32_z)))
svint32_t svasr_wide_s32_z(svbool_t, svint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s16_z)))
svint16_t svasr_wide_s16_z(svbool_t, svint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s8_m)))
svint8_t svasrd_n_s8_m(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s32_m)))
svint32_t svasrd_n_s32_m(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s64_m)))
svint64_t svasrd_n_s64_m(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s16_m)))
svint16_t svasrd_n_s16_m(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s8_x)))
svint8_t svasrd_n_s8_x(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s32_x)))
svint32_t svasrd_n_s32_x(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s64_x)))
svint64_t svasrd_n_s64_x(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s16_x)))
svint16_t svasrd_n_s16_x(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s8_z)))
svint8_t svasrd_n_s8_z(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s32_z)))
svint32_t svasrd_n_s32_z(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s64_z)))
svint64_t svasrd_n_s64_z(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s16_z)))
svint16_t svasrd_n_s16_z(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_b_z)))
svbool_t svbic_b_z(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u8_m)))
svuint8_t svbic_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u32_m)))
svuint32_t svbic_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u64_m)))
svuint64_t svbic_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u16_m)))
svuint16_t svbic_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s8_m)))
svint8_t svbic_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s32_m)))
svint32_t svbic_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s64_m)))
svint64_t svbic_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s16_m)))
svint16_t svbic_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u8_x)))
svuint8_t svbic_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u32_x)))
svuint32_t svbic_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u64_x)))
svuint64_t svbic_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u16_x)))
svuint16_t svbic_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s8_x)))
svint8_t svbic_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s32_x)))
svint32_t svbic_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s64_x)))
svint64_t svbic_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s16_x)))
svint16_t svbic_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u8_z)))
svuint8_t svbic_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u32_z)))
svuint32_t svbic_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u64_z)))
svuint64_t svbic_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u16_z)))
svuint16_t svbic_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s8_z)))
svint8_t svbic_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s32_z)))
svint32_t svbic_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s64_z)))
svint64_t svbic_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s16_z)))
svint16_t svbic_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u8_m)))
svuint8_t svbic_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u32_m)))
svuint32_t svbic_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u64_m)))
svuint64_t svbic_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u16_m)))
svuint16_t svbic_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s8_m)))
svint8_t svbic_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s32_m)))
svint32_t svbic_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s64_m)))
svint64_t svbic_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s16_m)))
svint16_t svbic_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u8_x)))
svuint8_t svbic_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u32_x)))
svuint32_t svbic_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u64_x)))
svuint64_t svbic_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u16_x)))
svuint16_t svbic_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s8_x)))
svint8_t svbic_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s32_x)))
svint32_t svbic_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s64_x)))
svint64_t svbic_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s16_x)))
svint16_t svbic_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u8_z)))
svuint8_t svbic_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u32_z)))
svuint32_t svbic_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u64_z)))
svuint64_t svbic_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u16_z)))
svuint16_t svbic_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s8_z)))
svint8_t svbic_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s32_z)))
svint32_t svbic_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s64_z)))
svint64_t svbic_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s16_z)))
svint16_t svbic_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrka_b_m)))
svbool_t svbrka_b_m(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrka_b_z)))
svbool_t svbrka_b_z(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrkb_b_m)))
svbool_t svbrkb_b_m(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrkb_b_z)))
svbool_t svbrkb_b_z(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrkn_b_z)))
svbool_t svbrkn_b_z(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrkpa_b_z)))
svbool_t svbrkpa_b_z(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrkpb_b_z)))
svbool_t svbrkpb_b_z(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f64_m)))
svfloat64_t svcadd_f64_m(svbool_t, svfloat64_t, svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f32_m)))
svfloat32_t svcadd_f32_m(svbool_t, svfloat32_t, svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f16_m)))
svfloat16_t svcadd_f16_m(svbool_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f64_x)))
svfloat64_t svcadd_f64_x(svbool_t, svfloat64_t, svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f32_x)))
svfloat32_t svcadd_f32_x(svbool_t, svfloat32_t, svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f16_x)))
svfloat16_t svcadd_f16_x(svbool_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f64_z)))
svfloat64_t svcadd_f64_z(svbool_t, svfloat64_t, svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f32_z)))
svfloat32_t svcadd_f32_z(svbool_t, svfloat32_t, svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f16_z)))
svfloat16_t svcadd_f16_z(svbool_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_u8)))
uint8_t svclasta_n_u8(svbool_t, uint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_u32)))
uint32_t svclasta_n_u32(svbool_t, uint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_u64)))
uint64_t svclasta_n_u64(svbool_t, uint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_u16)))
uint16_t svclasta_n_u16(svbool_t, uint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_s8)))
int8_t svclasta_n_s8(svbool_t, int8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_f64)))
float64_t svclasta_n_f64(svbool_t, float64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_f32)))
float32_t svclasta_n_f32(svbool_t, float32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_f16)))
float16_t svclasta_n_f16(svbool_t, float16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_s32)))
int32_t svclasta_n_s32(svbool_t, int32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_s64)))
int64_t svclasta_n_s64(svbool_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_s16)))
int16_t svclasta_n_s16(svbool_t, int16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_u8)))
svuint8_t svclasta_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_u32)))
svuint32_t svclasta_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_u64)))
svuint64_t svclasta_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_u16)))
svuint16_t svclasta_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_s8)))
svint8_t svclasta_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_f64)))
svfloat64_t svclasta_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_f32)))
svfloat32_t svclasta_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_f16)))
svfloat16_t svclasta_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_s32)))
svint32_t svclasta_s32(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_s64)))
svint64_t svclasta_s64(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_s16)))
svint16_t svclasta_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_u8)))
uint8_t svclastb_n_u8(svbool_t, uint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_u32)))
uint32_t svclastb_n_u32(svbool_t, uint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_u64)))
uint64_t svclastb_n_u64(svbool_t, uint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_u16)))
uint16_t svclastb_n_u16(svbool_t, uint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_s8)))
int8_t svclastb_n_s8(svbool_t, int8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_f64)))
float64_t svclastb_n_f64(svbool_t, float64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_f32)))
float32_t svclastb_n_f32(svbool_t, float32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_f16)))
float16_t svclastb_n_f16(svbool_t, float16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_s32)))
int32_t svclastb_n_s32(svbool_t, int32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_s64)))
int64_t svclastb_n_s64(svbool_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_s16)))
int16_t svclastb_n_s16(svbool_t, int16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_u8)))
svuint8_t svclastb_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_u32)))
svuint32_t svclastb_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_u64)))
svuint64_t svclastb_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_u16)))
svuint16_t svclastb_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_s8)))
svint8_t svclastb_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_f64)))
svfloat64_t svclastb_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_f32)))
svfloat32_t svclastb_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_f16)))
svfloat16_t svclastb_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_s32)))
svint32_t svclastb_s32(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_s64)))
svint64_t svclastb_s64(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_s16)))
svint16_t svclastb_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s8_m)))
svuint8_t svcls_s8_m(svuint8_t, svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s32_m)))
svuint32_t svcls_s32_m(svuint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s64_m)))
svuint64_t svcls_s64_m(svuint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s16_m)))
svuint16_t svcls_s16_m(svuint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s8_x)))
svuint8_t svcls_s8_x(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s32_x)))
svuint32_t svcls_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s64_x)))
svuint64_t svcls_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s16_x)))
svuint16_t svcls_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s8_z)))
svuint8_t svcls_s8_z(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s32_z)))
svuint32_t svcls_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s64_z)))
svuint64_t svcls_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s16_z)))
svuint16_t svcls_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u8_m)))
svuint8_t svclz_u8_m(svuint8_t, svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u32_m)))
svuint32_t svclz_u32_m(svuint32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u64_m)))
svuint64_t svclz_u64_m(svuint64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u16_m)))
svuint16_t svclz_u16_m(svuint16_t, svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s8_m)))
svuint8_t svclz_s8_m(svuint8_t, svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s32_m)))
svuint32_t svclz_s32_m(svuint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s64_m)))
svuint64_t svclz_s64_m(svuint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s16_m)))
svuint16_t svclz_s16_m(svuint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u8_x)))
svuint8_t svclz_u8_x(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u32_x)))
svuint32_t svclz_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u64_x)))
svuint64_t svclz_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u16_x)))
svuint16_t svclz_u16_x(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s8_x)))
svuint8_t svclz_s8_x(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s32_x)))
svuint32_t svclz_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s64_x)))
svuint64_t svclz_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s16_x)))
svuint16_t svclz_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u8_z)))
svuint8_t svclz_u8_z(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u32_z)))
svuint32_t svclz_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u64_z)))
svuint64_t svclz_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u16_z)))
svuint16_t svclz_u16_z(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s8_z)))
svuint8_t svclz_s8_z(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s32_z)))
svuint32_t svclz_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s64_z)))
svuint64_t svclz_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s16_z)))
svuint16_t svclz_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f64_m)))
svfloat64_t svcmla_f64_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f32_m)))
svfloat32_t svcmla_f32_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f16_m)))
svfloat16_t svcmla_f16_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f64_x)))
svfloat64_t svcmla_f64_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f32_x)))
svfloat32_t svcmla_f32_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f16_x)))
svfloat16_t svcmla_f16_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f64_z)))
svfloat64_t svcmla_f64_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f32_z)))
svfloat32_t svcmla_f32_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f16_z)))
svfloat16_t svcmla_f16_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_f32)))
svfloat32_t svcmla_lane_f32(svfloat32_t, svfloat32_t, svfloat32_t, uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_f16)))
svfloat16_t svcmla_lane_f16(svfloat16_t, svfloat16_t, svfloat16_t, uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_f64)))
svbool_t svcmpeq_n_f64(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_f32)))
svbool_t svcmpeq_n_f32(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_f16)))
svbool_t svcmpeq_n_f16(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_u8)))
svbool_t svcmpeq_n_u8(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_u32)))
svbool_t svcmpeq_n_u32(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_u64)))
svbool_t svcmpeq_n_u64(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_u16)))
svbool_t svcmpeq_n_u16(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_s8)))
svbool_t svcmpeq_n_s8(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_s32)))
svbool_t svcmpeq_n_s32(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_s64)))
svbool_t svcmpeq_n_s64(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_s16)))
svbool_t svcmpeq_n_s16(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_u8)))
svbool_t svcmpeq_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_u32)))
svbool_t svcmpeq_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_u64)))
svbool_t svcmpeq_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_u16)))
svbool_t svcmpeq_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_s8)))
svbool_t svcmpeq_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_s32)))
svbool_t svcmpeq_s32(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_s64)))
svbool_t svcmpeq_s64(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_s16)))
svbool_t svcmpeq_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_f64)))
svbool_t svcmpeq_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_f32)))
svbool_t svcmpeq_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_f16)))
svbool_t svcmpeq_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_n_s8)))
svbool_t svcmpeq_wide_n_s8(svbool_t, svint8_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_n_s32)))
svbool_t svcmpeq_wide_n_s32(svbool_t, svint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_n_s16)))
svbool_t svcmpeq_wide_n_s16(svbool_t, svint16_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_s8)))
svbool_t svcmpeq_wide_s8(svbool_t, svint8_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_s32)))
svbool_t svcmpeq_wide_s32(svbool_t, svint32_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_s16)))
svbool_t svcmpeq_wide_s16(svbool_t, svint16_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_f64)))
svbool_t svcmpge_n_f64(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_f32)))
svbool_t svcmpge_n_f32(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_f16)))
svbool_t svcmpge_n_f16(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_s8)))
svbool_t svcmpge_n_s8(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_s32)))
svbool_t svcmpge_n_s32(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_s64)))
svbool_t svcmpge_n_s64(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_s16)))
svbool_t svcmpge_n_s16(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_u8)))
svbool_t svcmpge_n_u8(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_u32)))
svbool_t svcmpge_n_u32(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_u64)))
svbool_t svcmpge_n_u64(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_u16)))
svbool_t svcmpge_n_u16(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_s8)))
svbool_t svcmpge_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_s32)))
svbool_t svcmpge_s32(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_s64)))
svbool_t svcmpge_s64(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_s16)))
svbool_t svcmpge_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_f64)))
svbool_t svcmpge_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_f32)))
svbool_t svcmpge_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_f16)))
svbool_t svcmpge_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_u8)))
svbool_t svcmpge_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_u32)))
svbool_t svcmpge_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_u64)))
svbool_t svcmpge_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_u16)))
svbool_t svcmpge_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_s8)))
svbool_t svcmpge_wide_n_s8(svbool_t, svint8_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_s32)))
svbool_t svcmpge_wide_n_s32(svbool_t, svint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_s16)))
svbool_t svcmpge_wide_n_s16(svbool_t, svint16_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_u8)))
svbool_t svcmpge_wide_n_u8(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_u32)))
svbool_t svcmpge_wide_n_u32(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_u16)))
svbool_t svcmpge_wide_n_u16(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_s8)))
svbool_t svcmpge_wide_s8(svbool_t, svint8_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_s32)))
svbool_t svcmpge_wide_s32(svbool_t, svint32_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_s16)))
svbool_t svcmpge_wide_s16(svbool_t, svint16_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_u8)))
svbool_t svcmpge_wide_u8(svbool_t, svuint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_u32)))
svbool_t svcmpge_wide_u32(svbool_t, svuint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_u16)))
svbool_t svcmpge_wide_u16(svbool_t, svuint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_f64)))
svbool_t svcmpgt_n_f64(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_f32)))
svbool_t svcmpgt_n_f32(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_f16)))
svbool_t svcmpgt_n_f16(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_s8)))
svbool_t svcmpgt_n_s8(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_s32)))
svbool_t svcmpgt_n_s32(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_s64)))
svbool_t svcmpgt_n_s64(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_s16)))
svbool_t svcmpgt_n_s16(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_u8)))
svbool_t svcmpgt_n_u8(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_u32)))
svbool_t svcmpgt_n_u32(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_u64)))
svbool_t svcmpgt_n_u64(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_u16)))
svbool_t svcmpgt_n_u16(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_s8)))
svbool_t svcmpgt_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_s32)))
svbool_t svcmpgt_s32(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_s64)))
svbool_t svcmpgt_s64(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_s16)))
svbool_t svcmpgt_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_f64)))
svbool_t svcmpgt_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_f32)))
svbool_t svcmpgt_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_f16)))
svbool_t svcmpgt_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_u8)))
svbool_t svcmpgt_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_u32)))
svbool_t svcmpgt_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_u64)))
svbool_t svcmpgt_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_u16)))
svbool_t svcmpgt_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_s8)))
svbool_t svcmpgt_wide_n_s8(svbool_t, svint8_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_s32)))
svbool_t svcmpgt_wide_n_s32(svbool_t, svint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_s16)))
svbool_t svcmpgt_wide_n_s16(svbool_t, svint16_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_u8)))
svbool_t svcmpgt_wide_n_u8(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_u32)))
svbool_t svcmpgt_wide_n_u32(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_u16)))
svbool_t svcmpgt_wide_n_u16(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_s8)))
svbool_t svcmpgt_wide_s8(svbool_t, svint8_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_s32)))
svbool_t svcmpgt_wide_s32(svbool_t, svint32_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_s16)))
svbool_t svcmpgt_wide_s16(svbool_t, svint16_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_u8)))
svbool_t svcmpgt_wide_u8(svbool_t, svuint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_u32)))
svbool_t svcmpgt_wide_u32(svbool_t, svuint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_u16)))
svbool_t svcmpgt_wide_u16(svbool_t, svuint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_f64)))
svbool_t svcmple_n_f64(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_f32)))
svbool_t svcmple_n_f32(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_f16)))
svbool_t svcmple_n_f16(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_s8)))
svbool_t svcmple_n_s8(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_s32)))
svbool_t svcmple_n_s32(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_s64)))
svbool_t svcmple_n_s64(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_s16)))
svbool_t svcmple_n_s16(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_u8)))
svbool_t svcmple_n_u8(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_u32)))
svbool_t svcmple_n_u32(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_u64)))
svbool_t svcmple_n_u64(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_u16)))
svbool_t svcmple_n_u16(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_s8)))
svbool_t svcmple_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_s32)))
svbool_t svcmple_s32(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_s64)))
svbool_t svcmple_s64(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_s16)))
svbool_t svcmple_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_f64)))
svbool_t svcmple_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_f32)))
svbool_t svcmple_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_f16)))
svbool_t svcmple_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_u8)))
svbool_t svcmple_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_u32)))
svbool_t svcmple_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_u64)))
svbool_t svcmple_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_u16)))
svbool_t svcmple_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_s8)))
svbool_t svcmple_wide_n_s8(svbool_t, svint8_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_s32)))
svbool_t svcmple_wide_n_s32(svbool_t, svint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_s16)))
svbool_t svcmple_wide_n_s16(svbool_t, svint16_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_u8)))
svbool_t svcmple_wide_n_u8(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_u32)))
svbool_t svcmple_wide_n_u32(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_u16)))
svbool_t svcmple_wide_n_u16(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_s8)))
svbool_t svcmple_wide_s8(svbool_t, svint8_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_s32)))
svbool_t svcmple_wide_s32(svbool_t, svint32_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_s16)))
svbool_t svcmple_wide_s16(svbool_t, svint16_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_u8)))
svbool_t svcmple_wide_u8(svbool_t, svuint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_u32)))
svbool_t svcmple_wide_u32(svbool_t, svuint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_u16)))
svbool_t svcmple_wide_u16(svbool_t, svuint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_u8)))
svbool_t svcmplt_n_u8(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_u32)))
svbool_t svcmplt_n_u32(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_u64)))
svbool_t svcmplt_n_u64(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_u16)))
svbool_t svcmplt_n_u16(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_f64)))
svbool_t svcmplt_n_f64(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_f32)))
svbool_t svcmplt_n_f32(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_f16)))
svbool_t svcmplt_n_f16(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_s8)))
svbool_t svcmplt_n_s8(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_s32)))
svbool_t svcmplt_n_s32(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_s64)))
svbool_t svcmplt_n_s64(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_s16)))
svbool_t svcmplt_n_s16(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_u8)))
svbool_t svcmplt_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_u32)))
svbool_t svcmplt_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_u64)))
svbool_t svcmplt_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_u16)))
svbool_t svcmplt_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_s8)))
svbool_t svcmplt_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_s32)))
svbool_t svcmplt_s32(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_s64)))
svbool_t svcmplt_s64(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_s16)))
svbool_t svcmplt_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_f64)))
svbool_t svcmplt_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_f32)))
svbool_t svcmplt_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_f16)))
svbool_t svcmplt_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_u8)))
svbool_t svcmplt_wide_n_u8(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_u32)))
svbool_t svcmplt_wide_n_u32(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_u16)))
svbool_t svcmplt_wide_n_u16(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_s8)))
svbool_t svcmplt_wide_n_s8(svbool_t, svint8_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_s32)))
svbool_t svcmplt_wide_n_s32(svbool_t, svint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_s16)))
svbool_t svcmplt_wide_n_s16(svbool_t, svint16_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_u8)))
svbool_t svcmplt_wide_u8(svbool_t, svuint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_u32)))
svbool_t svcmplt_wide_u32(svbool_t, svuint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_u16)))
svbool_t svcmplt_wide_u16(svbool_t, svuint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_s8)))
svbool_t svcmplt_wide_s8(svbool_t, svint8_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_s32)))
svbool_t svcmplt_wide_s32(svbool_t, svint32_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_s16)))
svbool_t svcmplt_wide_s16(svbool_t, svint16_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_f64)))
svbool_t svcmpne_n_f64(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_f32)))
svbool_t svcmpne_n_f32(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_f16)))
svbool_t svcmpne_n_f16(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_u8)))
svbool_t svcmpne_n_u8(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_u32)))
svbool_t svcmpne_n_u32(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_u64)))
svbool_t svcmpne_n_u64(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_u16)))
svbool_t svcmpne_n_u16(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_s8)))
svbool_t svcmpne_n_s8(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_s32)))
svbool_t svcmpne_n_s32(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_s64)))
svbool_t svcmpne_n_s64(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_s16)))
svbool_t svcmpne_n_s16(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_u8)))
svbool_t svcmpne_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_u32)))
svbool_t svcmpne_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_u64)))
svbool_t svcmpne_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_u16)))
svbool_t svcmpne_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_s8)))
svbool_t svcmpne_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_s32)))
svbool_t svcmpne_s32(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_s64)))
svbool_t svcmpne_s64(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_s16)))
svbool_t svcmpne_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_f64)))
svbool_t svcmpne_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_f32)))
svbool_t svcmpne_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_f16)))
svbool_t svcmpne_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_n_s8)))
svbool_t svcmpne_wide_n_s8(svbool_t, svint8_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_n_s32)))
svbool_t svcmpne_wide_n_s32(svbool_t, svint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_n_s16)))
svbool_t svcmpne_wide_n_s16(svbool_t, svint16_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_s8)))
svbool_t svcmpne_wide_s8(svbool_t, svint8_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_s32)))
svbool_t svcmpne_wide_s32(svbool_t, svint32_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_s16)))
svbool_t svcmpne_wide_s16(svbool_t, svint16_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_n_f64)))
svbool_t svcmpuo_n_f64(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_n_f32)))
svbool_t svcmpuo_n_f32(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_n_f16)))
svbool_t svcmpuo_n_f16(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_f64)))
svbool_t svcmpuo_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_f32)))
svbool_t svcmpuo_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_f16)))
svbool_t svcmpuo_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u8_m)))
svuint8_t svcnot_u8_m(svuint8_t, svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u32_m)))
svuint32_t svcnot_u32_m(svuint32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u64_m)))
svuint64_t svcnot_u64_m(svuint64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u16_m)))
svuint16_t svcnot_u16_m(svuint16_t, svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s8_m)))
svint8_t svcnot_s8_m(svint8_t, svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s32_m)))
svint32_t svcnot_s32_m(svint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s64_m)))
svint64_t svcnot_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s16_m)))
svint16_t svcnot_s16_m(svint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u8_x)))
svuint8_t svcnot_u8_x(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u32_x)))
svuint32_t svcnot_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u64_x)))
svuint64_t svcnot_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u16_x)))
svuint16_t svcnot_u16_x(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s8_x)))
svint8_t svcnot_s8_x(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s32_x)))
svint32_t svcnot_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s64_x)))
svint64_t svcnot_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s16_x)))
svint16_t svcnot_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u8_z)))
svuint8_t svcnot_u8_z(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u32_z)))
svuint32_t svcnot_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u64_z)))
svuint64_t svcnot_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u16_z)))
svuint16_t svcnot_u16_z(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s8_z)))
svint8_t svcnot_s8_z(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s32_z)))
svint32_t svcnot_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s64_z)))
svint64_t svcnot_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s16_z)))
svint16_t svcnot_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u8_m)))
svuint8_t svcnt_u8_m(svuint8_t, svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u32_m)))
svuint32_t svcnt_u32_m(svuint32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u64_m)))
svuint64_t svcnt_u64_m(svuint64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u16_m)))
svuint16_t svcnt_u16_m(svuint16_t, svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s8_m)))
svuint8_t svcnt_s8_m(svuint8_t, svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f64_m)))
svuint64_t svcnt_f64_m(svuint64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f32_m)))
svuint32_t svcnt_f32_m(svuint32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f16_m)))
svuint16_t svcnt_f16_m(svuint16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s32_m)))
svuint32_t svcnt_s32_m(svuint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s64_m)))
svuint64_t svcnt_s64_m(svuint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s16_m)))
svuint16_t svcnt_s16_m(svuint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u8_x)))
svuint8_t svcnt_u8_x(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u32_x)))
svuint32_t svcnt_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u64_x)))
svuint64_t svcnt_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u16_x)))
svuint16_t svcnt_u16_x(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s8_x)))
svuint8_t svcnt_s8_x(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f64_x)))
svuint64_t svcnt_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f32_x)))
svuint32_t svcnt_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f16_x)))
svuint16_t svcnt_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s32_x)))
svuint32_t svcnt_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s64_x)))
svuint64_t svcnt_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s16_x)))
svuint16_t svcnt_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u8_z)))
svuint8_t svcnt_u8_z(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u32_z)))
svuint32_t svcnt_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u64_z)))
svuint64_t svcnt_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u16_z)))
svuint16_t svcnt_u16_z(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s8_z)))
svuint8_t svcnt_s8_z(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f64_z)))
svuint64_t svcnt_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f32_z)))
svuint32_t svcnt_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f16_z)))
svuint16_t svcnt_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s32_z)))
svuint32_t svcnt_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s64_z)))
svuint64_t svcnt_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s16_z)))
svuint16_t svcnt_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcntb)))
uint64_t svcntb();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcntb_pat)))
uint64_t svcntb_pat(enum svpattern);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcntd)))
uint64_t svcntd();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcntd_pat)))
uint64_t svcntd_pat(enum svpattern);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnth)))
uint64_t svcnth();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnth_pat)))
uint64_t svcnth_pat(enum svpattern);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcntp_b8)))
uint64_t svcntp_b8(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcntp_b32)))
uint64_t svcntp_b32(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcntp_b64)))
uint64_t svcntp_b64(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcntp_b16)))
uint64_t svcntp_b16(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcntw)))
uint64_t svcntw();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcntw_pat)))
uint64_t svcntw_pat(enum svpattern);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_u32)))
svuint32_t svcompact_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_u64)))
svuint64_t svcompact_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_f64)))
svfloat64_t svcompact_f64(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_f32)))
svfloat32_t svcompact_f32(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_s32)))
svint32_t svcompact_s32(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_s64)))
svint64_t svcompact_s64(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_u8)))
svuint8x2_t svcreate2_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_u32)))
svuint32x2_t svcreate2_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_u64)))
svuint64x2_t svcreate2_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_u16)))
svuint16x2_t svcreate2_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_s8)))
svint8x2_t svcreate2_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_f64)))
svfloat64x2_t svcreate2_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_f32)))
svfloat32x2_t svcreate2_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_f16)))
svfloat16x2_t svcreate2_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_s32)))
svint32x2_t svcreate2_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_s64)))
svint64x2_t svcreate2_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_s16)))
svint16x2_t svcreate2_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_u8)))
svuint8x3_t svcreate3_u8(svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_u32)))
svuint32x3_t svcreate3_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_u64)))
svuint64x3_t svcreate3_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_u16)))
svuint16x3_t svcreate3_u16(svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_s8)))
svint8x3_t svcreate3_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_f64)))
svfloat64x3_t svcreate3_f64(svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_f32)))
svfloat32x3_t svcreate3_f32(svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_f16)))
svfloat16x3_t svcreate3_f16(svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_s32)))
svint32x3_t svcreate3_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_s64)))
svint64x3_t svcreate3_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_s16)))
svint16x3_t svcreate3_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_u8)))
svuint8x4_t svcreate4_u8(svuint8_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_u32)))
svuint32x4_t svcreate4_u32(svuint32_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_u64)))
svuint64x4_t svcreate4_u64(svuint64_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_u16)))
svuint16x4_t svcreate4_u16(svuint16_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_s8)))
svint8x4_t svcreate4_s8(svint8_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_f64)))
svfloat64x4_t svcreate4_f64(svfloat64_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_f32)))
svfloat32x4_t svcreate4_f32(svfloat32_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_f16)))
svfloat16x4_t svcreate4_f16(svfloat16_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_s32)))
svint32x4_t svcreate4_s32(svint32_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_s64)))
svint64x4_t svcreate4_s64(svint64_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_s16)))
svint16x4_t svcreate4_s16(svint16_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f32_m)))
svfloat16_t svcvt_f16_f32_m(svfloat16_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f32_x)))
svfloat16_t svcvt_f16_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f32_z)))
svfloat16_t svcvt_f16_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f64_m)))
svfloat16_t svcvt_f16_f64_m(svfloat16_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f64_x)))
svfloat16_t svcvt_f16_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f64_z)))
svfloat16_t svcvt_f16_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s16_m)))
svfloat16_t svcvt_f16_s16_m(svfloat16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s16_x)))
svfloat16_t svcvt_f16_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s16_z)))
svfloat16_t svcvt_f16_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s32_m)))
svfloat16_t svcvt_f16_s32_m(svfloat16_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s32_x)))
svfloat16_t svcvt_f16_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s32_z)))
svfloat16_t svcvt_f16_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s64_m)))
svfloat16_t svcvt_f16_s64_m(svfloat16_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s64_x)))
svfloat16_t svcvt_f16_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s64_z)))
svfloat16_t svcvt_f16_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u16_m)))
svfloat16_t svcvt_f16_u16_m(svfloat16_t, svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u16_x)))
svfloat16_t svcvt_f16_u16_x(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u16_z)))
svfloat16_t svcvt_f16_u16_z(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u32_m)))
svfloat16_t svcvt_f16_u32_m(svfloat16_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u32_x)))
svfloat16_t svcvt_f16_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u32_z)))
svfloat16_t svcvt_f16_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u64_m)))
svfloat16_t svcvt_f16_u64_m(svfloat16_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u64_x)))
svfloat16_t svcvt_f16_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u64_z)))
svfloat16_t svcvt_f16_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f16_m)))
svfloat32_t svcvt_f32_f16_m(svfloat32_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f16_x)))
svfloat32_t svcvt_f32_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f16_z)))
svfloat32_t svcvt_f32_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f64_m)))
svfloat32_t svcvt_f32_f64_m(svfloat32_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f64_x)))
svfloat32_t svcvt_f32_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f64_z)))
svfloat32_t svcvt_f32_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s32_m)))
svfloat32_t svcvt_f32_s32_m(svfloat32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s32_x)))
svfloat32_t svcvt_f32_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s32_z)))
svfloat32_t svcvt_f32_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s64_m)))
svfloat32_t svcvt_f32_s64_m(svfloat32_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s64_x)))
svfloat32_t svcvt_f32_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s64_z)))
svfloat32_t svcvt_f32_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u32_m)))
svfloat32_t svcvt_f32_u32_m(svfloat32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u32_x)))
svfloat32_t svcvt_f32_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u32_z)))
svfloat32_t svcvt_f32_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u64_m)))
svfloat32_t svcvt_f32_u64_m(svfloat32_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u64_x)))
svfloat32_t svcvt_f32_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u64_z)))
svfloat32_t svcvt_f32_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f16_m)))
svfloat64_t svcvt_f64_f16_m(svfloat64_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f16_x)))
svfloat64_t svcvt_f64_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f16_z)))
svfloat64_t svcvt_f64_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f32_m)))
svfloat64_t svcvt_f64_f32_m(svfloat64_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f32_x)))
svfloat64_t svcvt_f64_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f32_z)))
svfloat64_t svcvt_f64_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s32_m)))
svfloat64_t svcvt_f64_s32_m(svfloat64_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s32_x)))
svfloat64_t svcvt_f64_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s32_z)))
svfloat64_t svcvt_f64_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s64_m)))
svfloat64_t svcvt_f64_s64_m(svfloat64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s64_x)))
svfloat64_t svcvt_f64_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s64_z)))
svfloat64_t svcvt_f64_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u32_m)))
svfloat64_t svcvt_f64_u32_m(svfloat64_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u32_x)))
svfloat64_t svcvt_f64_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u32_z)))
svfloat64_t svcvt_f64_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u64_m)))
svfloat64_t svcvt_f64_u64_m(svfloat64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u64_x)))
svfloat64_t svcvt_f64_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u64_z)))
svfloat64_t svcvt_f64_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s16_f16_m)))
svint16_t svcvt_s16_f16_m(svint16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s16_f16_x)))
svint16_t svcvt_s16_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s16_f16_z)))
svint16_t svcvt_s16_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f16_m)))
svint32_t svcvt_s32_f16_m(svint32_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f16_x)))
svint32_t svcvt_s32_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f16_z)))
svint32_t svcvt_s32_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f32_m)))
svint32_t svcvt_s32_f32_m(svint32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f32_x)))
svint32_t svcvt_s32_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f32_z)))
svint32_t svcvt_s32_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f64_m)))
svint32_t svcvt_s32_f64_m(svint32_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f64_x)))
svint32_t svcvt_s32_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f64_z)))
svint32_t svcvt_s32_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f16_m)))
svint64_t svcvt_s64_f16_m(svint64_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f16_x)))
svint64_t svcvt_s64_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f16_z)))
svint64_t svcvt_s64_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f32_m)))
svint64_t svcvt_s64_f32_m(svint64_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f32_x)))
svint64_t svcvt_s64_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f32_z)))
svint64_t svcvt_s64_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f64_m)))
svint64_t svcvt_s64_f64_m(svint64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f64_x)))
svint64_t svcvt_s64_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f64_z)))
svint64_t svcvt_s64_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u16_f16_m)))
svuint16_t svcvt_u16_f16_m(svuint16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u16_f16_x)))
svuint16_t svcvt_u16_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u16_f16_z)))
svuint16_t svcvt_u16_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f16_m)))
svuint32_t svcvt_u32_f16_m(svuint32_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f16_x)))
svuint32_t svcvt_u32_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f16_z)))
svuint32_t svcvt_u32_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f32_m)))
svuint32_t svcvt_u32_f32_m(svuint32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f32_x)))
svuint32_t svcvt_u32_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f32_z)))
svuint32_t svcvt_u32_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f64_m)))
svuint32_t svcvt_u32_f64_m(svuint32_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f64_x)))
svuint32_t svcvt_u32_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f64_z)))
svuint32_t svcvt_u32_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f16_m)))
svuint64_t svcvt_u64_f16_m(svuint64_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f16_x)))
svuint64_t svcvt_u64_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f16_z)))
svuint64_t svcvt_u64_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f32_m)))
svuint64_t svcvt_u64_f32_m(svuint64_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f32_x)))
svuint64_t svcvt_u64_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f32_z)))
svuint64_t svcvt_u64_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f64_m)))
svuint64_t svcvt_u64_f64_m(svuint64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f64_x)))
svuint64_t svcvt_u64_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f64_z)))
svuint64_t svcvt_u64_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f64_m)))
svfloat64_t svdiv_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f32_m)))
svfloat32_t svdiv_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f16_m)))
svfloat16_t svdiv_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f64_x)))
svfloat64_t svdiv_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f32_x)))
svfloat32_t svdiv_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f16_x)))
svfloat16_t svdiv_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f64_z)))
svfloat64_t svdiv_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f32_z)))
svfloat32_t svdiv_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f16_z)))
svfloat16_t svdiv_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s32_m)))
svint32_t svdiv_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s64_m)))
svint64_t svdiv_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s32_x)))
svint32_t svdiv_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s64_x)))
svint64_t svdiv_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s32_z)))
svint32_t svdiv_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s64_z)))
svint64_t svdiv_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u32_m)))
svuint32_t svdiv_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u64_m)))
svuint64_t svdiv_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u32_x)))
svuint32_t svdiv_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u64_x)))
svuint64_t svdiv_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u32_z)))
svuint32_t svdiv_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u64_z)))
svuint64_t svdiv_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f64_m)))
svfloat64_t svdiv_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f32_m)))
svfloat32_t svdiv_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f16_m)))
svfloat16_t svdiv_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f64_x)))
svfloat64_t svdiv_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f32_x)))
svfloat32_t svdiv_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f16_x)))
svfloat16_t svdiv_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f64_z)))
svfloat64_t svdiv_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f32_z)))
svfloat32_t svdiv_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f16_z)))
svfloat16_t svdiv_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s32_m)))
svint32_t svdiv_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s64_m)))
svint64_t svdiv_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s32_x)))
svint32_t svdiv_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s64_x)))
svint64_t svdiv_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s32_z)))
svint32_t svdiv_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s64_z)))
svint64_t svdiv_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u32_m)))
svuint32_t svdiv_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u64_m)))
svuint64_t svdiv_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u32_x)))
svuint32_t svdiv_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u64_x)))
svuint64_t svdiv_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u32_z)))
svuint32_t svdiv_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u64_z)))
svuint64_t svdiv_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f64_m)))
svfloat64_t svdivr_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f32_m)))
svfloat32_t svdivr_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f16_m)))
svfloat16_t svdivr_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f64_x)))
svfloat64_t svdivr_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f32_x)))
svfloat32_t svdivr_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f16_x)))
svfloat16_t svdivr_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f64_z)))
svfloat64_t svdivr_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f32_z)))
svfloat32_t svdivr_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f16_z)))
svfloat16_t svdivr_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s32_m)))
svint32_t svdivr_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s64_m)))
svint64_t svdivr_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s32_x)))
svint32_t svdivr_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s64_x)))
svint64_t svdivr_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s32_z)))
svint32_t svdivr_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s64_z)))
svint64_t svdivr_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u32_m)))
svuint32_t svdivr_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u64_m)))
svuint64_t svdivr_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u32_x)))
svuint32_t svdivr_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u64_x)))
svuint64_t svdivr_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u32_z)))
svuint32_t svdivr_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u64_z)))
svuint64_t svdivr_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f64_m)))
svfloat64_t svdivr_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f32_m)))
svfloat32_t svdivr_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f16_m)))
svfloat16_t svdivr_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f64_x)))
svfloat64_t svdivr_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f32_x)))
svfloat32_t svdivr_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f16_x)))
svfloat16_t svdivr_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f64_z)))
svfloat64_t svdivr_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f32_z)))
svfloat32_t svdivr_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f16_z)))
svfloat16_t svdivr_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s32_m)))
svint32_t svdivr_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s64_m)))
svint64_t svdivr_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s32_x)))
svint32_t svdivr_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s64_x)))
svint64_t svdivr_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s32_z)))
svint32_t svdivr_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s64_z)))
svint64_t svdivr_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u32_m)))
svuint32_t svdivr_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u64_m)))
svuint64_t svdivr_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u32_x)))
svuint32_t svdivr_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u64_x)))
svuint64_t svdivr_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u32_z)))
svuint32_t svdivr_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u64_z)))
svuint64_t svdivr_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_n_s32)))
svint32_t svdot_n_s32(svint32_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_n_s64)))
svint64_t svdot_n_s64(svint64_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_n_u32)))
svuint32_t svdot_n_u32(svuint32_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_n_u64)))
svuint64_t svdot_n_u64(svuint64_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_s32)))
svint32_t svdot_s32(svint32_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_s64)))
svint64_t svdot_s64(svint64_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_u32)))
svuint32_t svdot_u32(svuint32_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_u64)))
svuint64_t svdot_u64(svuint64_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_lane_s32)))
svint32_t svdot_lane_s32(svint32_t, svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_lane_s64)))
svint64_t svdot_lane_s64(svint64_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_lane_u32)))
svuint32_t svdot_lane_u32(svuint32_t, svuint8_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_lane_u64)))
svuint64_t svdot_lane_u64(svuint64_t, svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u8)))
svuint8_t svdup_n_u8(uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u32)))
svuint32_t svdup_n_u32(uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u64)))
svuint64_t svdup_n_u64(uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u16)))
svuint16_t svdup_n_u16(uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s8)))
svint8_t svdup_n_s8(int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f64)))
svfloat64_t svdup_n_f64(float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f32)))
svfloat32_t svdup_n_f32(float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f16)))
svfloat16_t svdup_n_f16(float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s32)))
svint32_t svdup_n_s32(int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s64)))
svint64_t svdup_n_s64(int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s16)))
svint16_t svdup_n_s16(int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u8_m)))
svuint8_t svdup_n_u8_m(svuint8_t, svbool_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u32_m)))
svuint32_t svdup_n_u32_m(svuint32_t, svbool_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u64_m)))
svuint64_t svdup_n_u64_m(svuint64_t, svbool_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u16_m)))
svuint16_t svdup_n_u16_m(svuint16_t, svbool_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s8_m)))
svint8_t svdup_n_s8_m(svint8_t, svbool_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f64_m)))
svfloat64_t svdup_n_f64_m(svfloat64_t, svbool_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f32_m)))
svfloat32_t svdup_n_f32_m(svfloat32_t, svbool_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f16_m)))
svfloat16_t svdup_n_f16_m(svfloat16_t, svbool_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s32_m)))
svint32_t svdup_n_s32_m(svint32_t, svbool_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s64_m)))
svint64_t svdup_n_s64_m(svint64_t, svbool_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s16_m)))
svint16_t svdup_n_s16_m(svint16_t, svbool_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_b8)))
svbool_t svdup_n_b8(bool);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_b32)))
svbool_t svdup_n_b32(bool);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_b64)))
svbool_t svdup_n_b64(bool);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_b16)))
svbool_t svdup_n_b16(bool);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u8_x)))
svuint8_t svdup_n_u8_x(svbool_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u32_x)))
svuint32_t svdup_n_u32_x(svbool_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u64_x)))
svuint64_t svdup_n_u64_x(svbool_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u16_x)))
svuint16_t svdup_n_u16_x(svbool_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s8_x)))
svint8_t svdup_n_s8_x(svbool_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f64_x)))
svfloat64_t svdup_n_f64_x(svbool_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f32_x)))
svfloat32_t svdup_n_f32_x(svbool_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f16_x)))
svfloat16_t svdup_n_f16_x(svbool_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s32_x)))
svint32_t svdup_n_s32_x(svbool_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s64_x)))
svint64_t svdup_n_s64_x(svbool_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s16_x)))
svint16_t svdup_n_s16_x(svbool_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u8_z)))
svuint8_t svdup_n_u8_z(svbool_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u32_z)))
svuint32_t svdup_n_u32_z(svbool_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u64_z)))
svuint64_t svdup_n_u64_z(svbool_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u16_z)))
svuint16_t svdup_n_u16_z(svbool_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s8_z)))
svint8_t svdup_n_s8_z(svbool_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f64_z)))
svfloat64_t svdup_n_f64_z(svbool_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f32_z)))
svfloat32_t svdup_n_f32_z(svbool_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f16_z)))
svfloat16_t svdup_n_f16_z(svbool_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s32_z)))
svint32_t svdup_n_s32_z(svbool_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s64_z)))
svint64_t svdup_n_s64_z(svbool_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s16_z)))
svint16_t svdup_n_s16_z(svbool_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_u8)))
svuint8_t svdup_lane_u8(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_u32)))
svuint32_t svdup_lane_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_u64)))
svuint64_t svdup_lane_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_u16)))
svuint16_t svdup_lane_u16(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_s8)))
svint8_t svdup_lane_s8(svint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_f64)))
svfloat64_t svdup_lane_f64(svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_f32)))
svfloat32_t svdup_lane_f32(svfloat32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_f16)))
svfloat16_t svdup_lane_f16(svfloat16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_s32)))
svint32_t svdup_lane_s32(svint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_s64)))
svint64_t svdup_lane_s64(svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_s16)))
svint16_t svdup_lane_s16(svint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_u16)))
svuint16_t svdupq_n_u16(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_f16)))
svfloat16_t svdupq_n_f16(float16_t, float16_t, float16_t, float16_t, float16_t, float16_t, float16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_s16)))
svint16_t svdupq_n_s16(int16_t, int16_t, int16_t, int16_t, int16_t, int16_t, int16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_u32)))
svuint32_t svdupq_n_u32(uint32_t, uint32_t, uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_f32)))
svfloat32_t svdupq_n_f32(float32_t, float32_t, float32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_s32)))
svint32_t svdupq_n_s32(int32_t, int32_t, int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_u64)))
svuint64_t svdupq_n_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_f64)))
svfloat64_t svdupq_n_f64(float64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_s64)))
svint64_t svdupq_n_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_u8)))
svuint8_t svdupq_n_u8(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_s8)))
svint8_t svdupq_n_s8(int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_b16)))
svbool_t svdupq_n_b16(bool, bool, bool, bool, bool, bool, bool, bool);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_b32)))
svbool_t svdupq_n_b32(bool, bool, bool, bool);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_b64)))
svbool_t svdupq_n_b64(bool, bool);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_b8)))
svbool_t svdupq_n_b8(bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_u8)))
svuint8_t svdupq_lane_u8(svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_u32)))
svuint32_t svdupq_lane_u32(svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_u64)))
svuint64_t svdupq_lane_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_u16)))
svuint16_t svdupq_lane_u16(svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_s8)))
svint8_t svdupq_lane_s8(svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_f64)))
svfloat64_t svdupq_lane_f64(svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_f32)))
svfloat32_t svdupq_lane_f32(svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_f16)))
svfloat16_t svdupq_lane_f16(svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_s32)))
svint32_t svdupq_lane_s32(svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_s64)))
svint64_t svdupq_lane_s64(svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_s16)))
svint16_t svdupq_lane_s16(svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_b_z)))
svbool_t sveor_b_z(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u8_m)))
svuint8_t sveor_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u32_m)))
svuint32_t sveor_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u64_m)))
svuint64_t sveor_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u16_m)))
svuint16_t sveor_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s8_m)))
svint8_t sveor_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s32_m)))
svint32_t sveor_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s64_m)))
svint64_t sveor_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s16_m)))
svint16_t sveor_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u8_x)))
svuint8_t sveor_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u32_x)))
svuint32_t sveor_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u64_x)))
svuint64_t sveor_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u16_x)))
svuint16_t sveor_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s8_x)))
svint8_t sveor_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s32_x)))
svint32_t sveor_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s64_x)))
svint64_t sveor_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s16_x)))
svint16_t sveor_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u8_z)))
svuint8_t sveor_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u32_z)))
svuint32_t sveor_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u64_z)))
svuint64_t sveor_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u16_z)))
svuint16_t sveor_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s8_z)))
svint8_t sveor_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s32_z)))
svint32_t sveor_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s64_z)))
svint64_t sveor_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s16_z)))
svint16_t sveor_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u8_m)))
svuint8_t sveor_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u32_m)))
svuint32_t sveor_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u64_m)))
svuint64_t sveor_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u16_m)))
svuint16_t sveor_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s8_m)))
svint8_t sveor_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s32_m)))
svint32_t sveor_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s64_m)))
svint64_t sveor_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s16_m)))
svint16_t sveor_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u8_x)))
svuint8_t sveor_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u32_x)))
svuint32_t sveor_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u64_x)))
svuint64_t sveor_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u16_x)))
svuint16_t sveor_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s8_x)))
svint8_t sveor_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s32_x)))
svint32_t sveor_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s64_x)))
svint64_t sveor_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s16_x)))
svint16_t sveor_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u8_z)))
svuint8_t sveor_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u32_z)))
svuint32_t sveor_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u64_z)))
svuint64_t sveor_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u16_z)))
svuint16_t sveor_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s8_z)))
svint8_t sveor_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s32_z)))
svint32_t sveor_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s64_z)))
svint64_t sveor_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s16_z)))
svint16_t sveor_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_u8)))
uint8_t sveorv_u8(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_u32)))
uint32_t sveorv_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_u64)))
uint64_t sveorv_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_u16)))
uint16_t sveorv_u16(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_s8)))
int8_t sveorv_s8(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_s32)))
int32_t sveorv_s32(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_s64)))
int64_t sveorv_s64(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_s16)))
int16_t sveorv_s16(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexpa_f64)))
svfloat64_t svexpa_f64(svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexpa_f32)))
svfloat32_t svexpa_f32(svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexpa_f16)))
svfloat16_t svexpa_f16(svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_u8)))
svuint8_t svext_u8(svuint8_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_u32)))
svuint32_t svext_u32(svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_u64)))
svuint64_t svext_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_u16)))
svuint16_t svext_u16(svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_s8)))
svint8_t svext_s8(svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_f64)))
svfloat64_t svext_f64(svfloat64_t, svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_f32)))
svfloat32_t svext_f32(svfloat32_t, svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_f16)))
svfloat16_t svext_f16(svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_s32)))
svint32_t svext_s32(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_s64)))
svint64_t svext_s64(svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_s16)))
svint16_t svext_s16(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s32_m)))
svint32_t svextb_s32_m(svint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s64_m)))
svint64_t svextb_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s16_m)))
svint16_t svextb_s16_m(svint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s32_x)))
svint32_t svextb_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s64_x)))
svint64_t svextb_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s16_x)))
svint16_t svextb_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s32_z)))
svint32_t svextb_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s64_z)))
svint64_t svextb_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s16_z)))
svint16_t svextb_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u32_m)))
svuint32_t svextb_u32_m(svuint32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u64_m)))
svuint64_t svextb_u64_m(svuint64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u16_m)))
svuint16_t svextb_u16_m(svuint16_t, svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u32_x)))
svuint32_t svextb_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u64_x)))
svuint64_t svextb_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u16_x)))
svuint16_t svextb_u16_x(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u32_z)))
svuint32_t svextb_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u64_z)))
svuint64_t svextb_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u16_z)))
svuint16_t svextb_u16_z(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s32_m)))
svint32_t svexth_s32_m(svint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s64_m)))
svint64_t svexth_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s32_x)))
svint32_t svexth_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s64_x)))
svint64_t svexth_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s32_z)))
svint32_t svexth_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s64_z)))
svint64_t svexth_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u32_m)))
svuint32_t svexth_u32_m(svuint32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u64_m)))
svuint64_t svexth_u64_m(svuint64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u32_x)))
svuint32_t svexth_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u64_x)))
svuint64_t svexth_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u32_z)))
svuint32_t svexth_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u64_z)))
svuint64_t svexth_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_s64_m)))
svint64_t svextw_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_s64_x)))
svint64_t svextw_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_s64_z)))
svint64_t svextw_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_u64_m)))
svuint64_t svextw_u64_m(svuint64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_u64_x)))
svuint64_t svextw_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_u64_z)))
svuint64_t svextw_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_u8)))
svuint8_t svget2_u8(svuint8x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_u32)))
svuint32_t svget2_u32(svuint32x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_u64)))
svuint64_t svget2_u64(svuint64x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_u16)))
svuint16_t svget2_u16(svuint16x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_s8)))
svint8_t svget2_s8(svint8x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_f64)))
svfloat64_t svget2_f64(svfloat64x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_f32)))
svfloat32_t svget2_f32(svfloat32x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_f16)))
svfloat16_t svget2_f16(svfloat16x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_s32)))
svint32_t svget2_s32(svint32x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_s64)))
svint64_t svget2_s64(svint64x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_s16)))
svint16_t svget2_s16(svint16x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_u8)))
svuint8_t svget3_u8(svuint8x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_u32)))
svuint32_t svget3_u32(svuint32x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_u64)))
svuint64_t svget3_u64(svuint64x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_u16)))
svuint16_t svget3_u16(svuint16x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_s8)))
svint8_t svget3_s8(svint8x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_f64)))
svfloat64_t svget3_f64(svfloat64x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_f32)))
svfloat32_t svget3_f32(svfloat32x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_f16)))
svfloat16_t svget3_f16(svfloat16x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_s32)))
svint32_t svget3_s32(svint32x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_s64)))
svint64_t svget3_s64(svint64x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_s16)))
svint16_t svget3_s16(svint16x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_u8)))
svuint8_t svget4_u8(svuint8x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_u32)))
svuint32_t svget4_u32(svuint32x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_u64)))
svuint64_t svget4_u64(svuint64x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_u16)))
svuint16_t svget4_u16(svuint16x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_s8)))
svint8_t svget4_s8(svint8x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_f64)))
svfloat64_t svget4_f64(svfloat64x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_f32)))
svfloat32_t svget4_f32(svfloat32x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_f16)))
svfloat16_t svget4_f16(svfloat16x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_s32)))
svint32_t svget4_s32(svint32x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_s64)))
svint64_t svget4_s64(svint64x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_s16)))
svint16_t svget4_s16(svint16x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svindex_u8)))
svuint8_t svindex_u8(uint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svindex_u32)))
svuint32_t svindex_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svindex_u64)))
svuint64_t svindex_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svindex_u16)))
svuint16_t svindex_u16(uint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svindex_s8)))
svint8_t svindex_s8(int8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svindex_s32)))
svint32_t svindex_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svindex_s64)))
svint64_t svindex_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svindex_s16)))
svint16_t svindex_s16(int16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_u8)))
svuint8_t svinsr_n_u8(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_u32)))
svuint32_t svinsr_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_u64)))
svuint64_t svinsr_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_u16)))
svuint16_t svinsr_n_u16(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_s8)))
svint8_t svinsr_n_s8(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_f64)))
svfloat64_t svinsr_n_f64(svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_f32)))
svfloat32_t svinsr_n_f32(svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_f16)))
svfloat16_t svinsr_n_f16(svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_s32)))
svint32_t svinsr_n_s32(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_s64)))
svint64_t svinsr_n_s64(svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_s16)))
svint16_t svinsr_n_s16(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_u8)))
uint8_t svlasta_u8(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_u32)))
uint32_t svlasta_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_u64)))
uint64_t svlasta_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_u16)))
uint16_t svlasta_u16(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_s8)))
int8_t svlasta_s8(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_f64)))
float64_t svlasta_f64(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_f32)))
float32_t svlasta_f32(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_f16)))
float16_t svlasta_f16(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_s32)))
int32_t svlasta_s32(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_s64)))
int64_t svlasta_s64(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_s16)))
int16_t svlasta_s16(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_u8)))
uint8_t svlastb_u8(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_u32)))
uint32_t svlastb_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_u64)))
uint64_t svlastb_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_u16)))
uint16_t svlastb_u16(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_s8)))
int8_t svlastb_s8(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_f64)))
float64_t svlastb_f64(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_f32)))
float32_t svlastb_f32(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_f16)))
float16_t svlastb_f16(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_s32)))
int32_t svlastb_s32(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_s64)))
int64_t svlastb_s64(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_s16)))
int16_t svlastb_s16(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_u8)))
svuint8_t svld1_u8(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_u32)))
svuint32_t svld1_u32(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_u64)))
svuint64_t svld1_u64(svbool_t, uint64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_u16)))
svuint16_t svld1_u16(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_s8)))
svint8_t svld1_s8(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_f64)))
svfloat64_t svld1_f64(svbool_t, float64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_f32)))
svfloat32_t svld1_f32(svbool_t, float32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_f16)))
svfloat16_t svld1_f16(svbool_t, float16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_s32)))
svint32_t svld1_s32(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_s64)))
svint64_t svld1_s64(svbool_t, int64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_s16)))
svint16_t svld1_s16(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_index_u32)))
svuint32_t svld1_gather_u32base_index_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_index_u64)))
svuint64_t svld1_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_index_f64)))
svfloat64_t svld1_gather_u64base_index_f64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_index_f32)))
svfloat32_t svld1_gather_u32base_index_f32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_index_s32)))
svint32_t svld1_gather_u32base_index_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_index_s64)))
svint64_t svld1_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_offset_u32)))
svuint32_t svld1_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_offset_u64)))
svuint64_t svld1_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_offset_f64)))
svfloat64_t svld1_gather_u64base_offset_f64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_offset_f32)))
svfloat32_t svld1_gather_u32base_offset_f32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_offset_s32)))
svint32_t svld1_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_offset_s64)))
svint64_t svld1_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_u32)))
svuint32_t svld1_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_u64)))
svuint64_t svld1_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_f64)))
svfloat64_t svld1_gather_u64base_f64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_f32)))
svfloat32_t svld1_gather_u32base_f32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_s32)))
svint32_t svld1_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_s64)))
svint64_t svld1_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32index_u32)))
svuint32_t svld1_gather_s32index_u32(svbool_t, uint32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32index_f32)))
svfloat32_t svld1_gather_s32index_f32(svbool_t, float32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32index_s32)))
svint32_t svld1_gather_s32index_s32(svbool_t, int32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32index_u32)))
svuint32_t svld1_gather_u32index_u32(svbool_t, uint32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32index_f32)))
svfloat32_t svld1_gather_u32index_f32(svbool_t, float32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32index_s32)))
svint32_t svld1_gather_u32index_s32(svbool_t, int32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64index_u64)))
svuint64_t svld1_gather_s64index_u64(svbool_t, uint64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64index_f64)))
svfloat64_t svld1_gather_s64index_f64(svbool_t, float64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64index_s64)))
svint64_t svld1_gather_s64index_s64(svbool_t, int64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64index_u64)))
svuint64_t svld1_gather_u64index_u64(svbool_t, uint64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64index_f64)))
svfloat64_t svld1_gather_u64index_f64(svbool_t, float64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64index_s64)))
svint64_t svld1_gather_u64index_s64(svbool_t, int64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32offset_u32)))
svuint32_t svld1_gather_s32offset_u32(svbool_t, uint32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32offset_f32)))
svfloat32_t svld1_gather_s32offset_f32(svbool_t, float32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32offset_s32)))
svint32_t svld1_gather_s32offset_s32(svbool_t, int32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32offset_u32)))
svuint32_t svld1_gather_u32offset_u32(svbool_t, uint32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32offset_f32)))
svfloat32_t svld1_gather_u32offset_f32(svbool_t, float32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32offset_s32)))
svint32_t svld1_gather_u32offset_s32(svbool_t, int32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64offset_u64)))
svuint64_t svld1_gather_s64offset_u64(svbool_t, uint64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64offset_f64)))
svfloat64_t svld1_gather_s64offset_f64(svbool_t, float64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64offset_s64)))
svint64_t svld1_gather_s64offset_s64(svbool_t, int64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64offset_u64)))
svuint64_t svld1_gather_u64offset_u64(svbool_t, uint64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64offset_f64)))
svfloat64_t svld1_gather_u64offset_f64(svbool_t, float64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64offset_s64)))
svint64_t svld1_gather_u64offset_s64(svbool_t, int64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_u8)))
svuint8_t svld1_vnum_u8(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_u32)))
svuint32_t svld1_vnum_u32(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_u64)))
svuint64_t svld1_vnum_u64(svbool_t, uint64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_u16)))
svuint16_t svld1_vnum_u16(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_s8)))
svint8_t svld1_vnum_s8(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_f64)))
svfloat64_t svld1_vnum_f64(svbool_t, float64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_f32)))
svfloat32_t svld1_vnum_f32(svbool_t, float32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_f16)))
svfloat16_t svld1_vnum_f16(svbool_t, float16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_s32)))
svint32_t svld1_vnum_s32(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_s64)))
svint64_t svld1_vnum_s64(svbool_t, int64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_s16)))
svint16_t svld1_vnum_s16(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_u8)))
svuint8_t svld1rq_u8(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_u32)))
svuint32_t svld1rq_u32(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_u64)))
svuint64_t svld1rq_u64(svbool_t, uint64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_u16)))
svuint16_t svld1rq_u16(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_s8)))
svint8_t svld1rq_s8(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_f64)))
svfloat64_t svld1rq_f64(svbool_t, float64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_f32)))
svfloat32_t svld1rq_f32(svbool_t, float32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_f16)))
svfloat16_t svld1rq_f16(svbool_t, float16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_s32)))
svint32_t svld1rq_s32(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_s64)))
svint64_t svld1rq_s64(svbool_t, int64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_s16)))
svint16_t svld1rq_s16(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32base_offset_u32)))
svuint32_t svld1sb_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64base_offset_u64)))
svuint64_t svld1sb_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32base_offset_s32)))
svint32_t svld1sb_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64base_offset_s64)))
svint64_t svld1sb_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32base_u32)))
svuint32_t svld1sb_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64base_u64)))
svuint64_t svld1sb_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32base_s32)))
svint32_t svld1sb_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64base_s64)))
svint64_t svld1sb_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_s32offset_u32)))
svuint32_t svld1sb_gather_s32offset_u32(svbool_t, int8_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_s32offset_s32)))
svint32_t svld1sb_gather_s32offset_s32(svbool_t, int8_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32offset_u32)))
svuint32_t svld1sb_gather_u32offset_u32(svbool_t, int8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32offset_s32)))
svint32_t svld1sb_gather_u32offset_s32(svbool_t, int8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_s64offset_u64)))
svuint64_t svld1sb_gather_s64offset_u64(svbool_t, int8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_s64offset_s64)))
svint64_t svld1sb_gather_s64offset_s64(svbool_t, int8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64offset_u64)))
svuint64_t svld1sb_gather_u64offset_u64(svbool_t, int8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64offset_s64)))
svint64_t svld1sb_gather_u64offset_s64(svbool_t, int8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_vnum_u32)))
svuint32_t svld1sb_vnum_u32(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_vnum_u64)))
svuint64_t svld1sb_vnum_u64(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_vnum_u16)))
svuint16_t svld1sb_vnum_u16(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_vnum_s32)))
svint32_t svld1sb_vnum_s32(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_vnum_s64)))
svint64_t svld1sb_vnum_s64(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_vnum_s16)))
svint16_t svld1sb_vnum_s16(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_u32)))
svuint32_t svld1sb_u32(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_u64)))
svuint64_t svld1sb_u64(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_u16)))
svuint16_t svld1sb_u16(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_s32)))
svint32_t svld1sb_s32(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_s64)))
svint64_t svld1sb_s64(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_s16)))
svint16_t svld1sb_s16(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_index_u32)))
svuint32_t svld1sh_gather_u32base_index_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_index_u64)))
svuint64_t svld1sh_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_index_s32)))
svint32_t svld1sh_gather_u32base_index_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_index_s64)))
svint64_t svld1sh_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_offset_u32)))
svuint32_t svld1sh_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_offset_u64)))
svuint64_t svld1sh_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_offset_s32)))
svint32_t svld1sh_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_offset_s64)))
svint64_t svld1sh_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_u32)))
svuint32_t svld1sh_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_u64)))
svuint64_t svld1sh_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_s32)))
svint32_t svld1sh_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_s64)))
svint64_t svld1sh_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s32index_u32)))
svuint32_t svld1sh_gather_s32index_u32(svbool_t, int16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s32index_s32)))
svint32_t svld1sh_gather_s32index_s32(svbool_t, int16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32index_u32)))
svuint32_t svld1sh_gather_u32index_u32(svbool_t, int16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32index_s32)))
svint32_t svld1sh_gather_u32index_s32(svbool_t, int16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s64index_u64)))
svuint64_t svld1sh_gather_s64index_u64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s64index_s64)))
svint64_t svld1sh_gather_s64index_s64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64index_u64)))
svuint64_t svld1sh_gather_u64index_u64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64index_s64)))
svint64_t svld1sh_gather_u64index_s64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s32offset_u32)))
svuint32_t svld1sh_gather_s32offset_u32(svbool_t, int16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s32offset_s32)))
svint32_t svld1sh_gather_s32offset_s32(svbool_t, int16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32offset_u32)))
svuint32_t svld1sh_gather_u32offset_u32(svbool_t, int16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32offset_s32)))
svint32_t svld1sh_gather_u32offset_s32(svbool_t, int16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s64offset_u64)))
svuint64_t svld1sh_gather_s64offset_u64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s64offset_s64)))
svint64_t svld1sh_gather_s64offset_s64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64offset_u64)))
svuint64_t svld1sh_gather_u64offset_u64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64offset_s64)))
svint64_t svld1sh_gather_u64offset_s64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_vnum_u32)))
svuint32_t svld1sh_vnum_u32(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_vnum_u64)))
svuint64_t svld1sh_vnum_u64(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_vnum_s32)))
svint32_t svld1sh_vnum_s32(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_vnum_s64)))
svint64_t svld1sh_vnum_s64(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_u32)))
svuint32_t svld1sh_u32(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_u64)))
svuint64_t svld1sh_u64(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_s32)))
svint32_t svld1sh_s32(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_s64)))
svint64_t svld1sh_s64(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_index_u64)))
svuint64_t svld1sw_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_index_s64)))
svint64_t svld1sw_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_offset_u64)))
svuint64_t svld1sw_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_offset_s64)))
svint64_t svld1sw_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_u64)))
svuint64_t svld1sw_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_s64)))
svint64_t svld1sw_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_s64index_u64)))
svuint64_t svld1sw_gather_s64index_u64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_s64index_s64)))
svint64_t svld1sw_gather_s64index_s64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64index_u64)))
svuint64_t svld1sw_gather_u64index_u64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64index_s64)))
svint64_t svld1sw_gather_u64index_s64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_s64offset_u64)))
svuint64_t svld1sw_gather_s64offset_u64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_s64offset_s64)))
svint64_t svld1sw_gather_s64offset_s64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64offset_u64)))
svuint64_t svld1sw_gather_u64offset_u64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64offset_s64)))
svint64_t svld1sw_gather_u64offset_s64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_vnum_u64)))
svuint64_t svld1sw_vnum_u64(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_vnum_s64)))
svint64_t svld1sw_vnum_s64(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_u64)))
svuint64_t svld1sw_u64(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_s64)))
svint64_t svld1sw_s64(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32base_offset_u32)))
svuint32_t svld1ub_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64base_offset_u64)))
svuint64_t svld1ub_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32base_offset_s32)))
svint32_t svld1ub_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64base_offset_s64)))
svint64_t svld1ub_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32base_u32)))
svuint32_t svld1ub_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64base_u64)))
svuint64_t svld1ub_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32base_s32)))
svint32_t svld1ub_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64base_s64)))
svint64_t svld1ub_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_s32offset_u32)))
svuint32_t svld1ub_gather_s32offset_u32(svbool_t, uint8_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_s32offset_s32)))
svint32_t svld1ub_gather_s32offset_s32(svbool_t, uint8_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32offset_u32)))
svuint32_t svld1ub_gather_u32offset_u32(svbool_t, uint8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32offset_s32)))
svint32_t svld1ub_gather_u32offset_s32(svbool_t, uint8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_s64offset_u64)))
svuint64_t svld1ub_gather_s64offset_u64(svbool_t, uint8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_s64offset_s64)))
svint64_t svld1ub_gather_s64offset_s64(svbool_t, uint8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64offset_u64)))
svuint64_t svld1ub_gather_u64offset_u64(svbool_t, uint8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64offset_s64)))
svint64_t svld1ub_gather_u64offset_s64(svbool_t, uint8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_vnum_u32)))
svuint32_t svld1ub_vnum_u32(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_vnum_u64)))
svuint64_t svld1ub_vnum_u64(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_vnum_u16)))
svuint16_t svld1ub_vnum_u16(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_vnum_s32)))
svint32_t svld1ub_vnum_s32(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_vnum_s64)))
svint64_t svld1ub_vnum_s64(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_vnum_s16)))
svint16_t svld1ub_vnum_s16(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_u32)))
svuint32_t svld1ub_u32(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_u64)))
svuint64_t svld1ub_u64(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_u16)))
svuint16_t svld1ub_u16(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_s32)))
svint32_t svld1ub_s32(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_s64)))
svint64_t svld1ub_s64(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_s16)))
svint16_t svld1ub_s16(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_index_u32)))
svuint32_t svld1uh_gather_u32base_index_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_index_u64)))
svuint64_t svld1uh_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_index_s32)))
svint32_t svld1uh_gather_u32base_index_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_index_s64)))
svint64_t svld1uh_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_offset_u32)))
svuint32_t svld1uh_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_offset_u64)))
svuint64_t svld1uh_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_offset_s32)))
svint32_t svld1uh_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_offset_s64)))
svint64_t svld1uh_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_u32)))
svuint32_t svld1uh_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_u64)))
svuint64_t svld1uh_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_s32)))
svint32_t svld1uh_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_s64)))
svint64_t svld1uh_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s32index_u32)))
svuint32_t svld1uh_gather_s32index_u32(svbool_t, uint16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s32index_s32)))
svint32_t svld1uh_gather_s32index_s32(svbool_t, uint16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32index_u32)))
svuint32_t svld1uh_gather_u32index_u32(svbool_t, uint16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32index_s32)))
svint32_t svld1uh_gather_u32index_s32(svbool_t, uint16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s64index_u64)))
svuint64_t svld1uh_gather_s64index_u64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s64index_s64)))
svint64_t svld1uh_gather_s64index_s64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64index_u64)))
svuint64_t svld1uh_gather_u64index_u64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64index_s64)))
svint64_t svld1uh_gather_u64index_s64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s32offset_u32)))
svuint32_t svld1uh_gather_s32offset_u32(svbool_t, uint16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s32offset_s32)))
svint32_t svld1uh_gather_s32offset_s32(svbool_t, uint16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32offset_u32)))
svuint32_t svld1uh_gather_u32offset_u32(svbool_t, uint16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32offset_s32)))
svint32_t svld1uh_gather_u32offset_s32(svbool_t, uint16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s64offset_u64)))
svuint64_t svld1uh_gather_s64offset_u64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s64offset_s64)))
svint64_t svld1uh_gather_s64offset_s64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64offset_u64)))
svuint64_t svld1uh_gather_u64offset_u64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64offset_s64)))
svint64_t svld1uh_gather_u64offset_s64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_vnum_u32)))
svuint32_t svld1uh_vnum_u32(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_vnum_u64)))
svuint64_t svld1uh_vnum_u64(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_vnum_s32)))
svint32_t svld1uh_vnum_s32(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_vnum_s64)))
svint64_t svld1uh_vnum_s64(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_u32)))
svuint32_t svld1uh_u32(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_u64)))
svuint64_t svld1uh_u64(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_s32)))
svint32_t svld1uh_s32(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_s64)))
svint64_t svld1uh_s64(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_index_u64)))
svuint64_t svld1uw_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_index_s64)))
svint64_t svld1uw_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_offset_u64)))
svuint64_t svld1uw_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_offset_s64)))
svint64_t svld1uw_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_u64)))
svuint64_t svld1uw_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_s64)))
svint64_t svld1uw_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_s64index_u64)))
svuint64_t svld1uw_gather_s64index_u64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_s64index_s64)))
svint64_t svld1uw_gather_s64index_s64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64index_u64)))
svuint64_t svld1uw_gather_u64index_u64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64index_s64)))
svint64_t svld1uw_gather_u64index_s64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_s64offset_u64)))
svuint64_t svld1uw_gather_s64offset_u64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_s64offset_s64)))
svint64_t svld1uw_gather_s64offset_s64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64offset_u64)))
svuint64_t svld1uw_gather_u64offset_u64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64offset_s64)))
svint64_t svld1uw_gather_u64offset_s64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_vnum_u64)))
svuint64_t svld1uw_vnum_u64(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_vnum_s64)))
svint64_t svld1uw_vnum_s64(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_u64)))
svuint64_t svld1uw_u64(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_s64)))
svint64_t svld1uw_s64(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_u8)))
svuint8x2_t svld2_u8(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_u32)))
svuint32x2_t svld2_u32(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_u64)))
svuint64x2_t svld2_u64(svbool_t, uint64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_u16)))
svuint16x2_t svld2_u16(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_s8)))
svint8x2_t svld2_s8(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_f64)))
svfloat64x2_t svld2_f64(svbool_t, float64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_f32)))
svfloat32x2_t svld2_f32(svbool_t, float32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_f16)))
svfloat16x2_t svld2_f16(svbool_t, float16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_s32)))
svint32x2_t svld2_s32(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_s64)))
svint64x2_t svld2_s64(svbool_t, int64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_s16)))
svint16x2_t svld2_s16(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_u8)))
svuint8x2_t svld2_vnum_u8(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_u32)))
svuint32x2_t svld2_vnum_u32(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_u64)))
svuint64x2_t svld2_vnum_u64(svbool_t, uint64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_u16)))
svuint16x2_t svld2_vnum_u16(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_s8)))
svint8x2_t svld2_vnum_s8(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_f64)))
svfloat64x2_t svld2_vnum_f64(svbool_t, float64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_f32)))
svfloat32x2_t svld2_vnum_f32(svbool_t, float32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_f16)))
svfloat16x2_t svld2_vnum_f16(svbool_t, float16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_s32)))
svint32x2_t svld2_vnum_s32(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_s64)))
svint64x2_t svld2_vnum_s64(svbool_t, int64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_s16)))
svint16x2_t svld2_vnum_s16(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_u8)))
svuint8x3_t svld3_u8(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_u32)))
svuint32x3_t svld3_u32(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_u64)))
svuint64x3_t svld3_u64(svbool_t, uint64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_u16)))
svuint16x3_t svld3_u16(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_s8)))
svint8x3_t svld3_s8(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_f64)))
svfloat64x3_t svld3_f64(svbool_t, float64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_f32)))
svfloat32x3_t svld3_f32(svbool_t, float32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_f16)))
svfloat16x3_t svld3_f16(svbool_t, float16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_s32)))
svint32x3_t svld3_s32(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_s64)))
svint64x3_t svld3_s64(svbool_t, int64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_s16)))
svint16x3_t svld3_s16(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_u8)))
svuint8x3_t svld3_vnum_u8(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_u32)))
svuint32x3_t svld3_vnum_u32(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_u64)))
svuint64x3_t svld3_vnum_u64(svbool_t, uint64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_u16)))
svuint16x3_t svld3_vnum_u16(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_s8)))
svint8x3_t svld3_vnum_s8(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_f64)))
svfloat64x3_t svld3_vnum_f64(svbool_t, float64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_f32)))
svfloat32x3_t svld3_vnum_f32(svbool_t, float32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_f16)))
svfloat16x3_t svld3_vnum_f16(svbool_t, float16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_s32)))
svint32x3_t svld3_vnum_s32(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_s64)))
svint64x3_t svld3_vnum_s64(svbool_t, int64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_s16)))
svint16x3_t svld3_vnum_s16(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_u8)))
svuint8x4_t svld4_u8(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_u32)))
svuint32x4_t svld4_u32(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_u64)))
svuint64x4_t svld4_u64(svbool_t, uint64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_u16)))
svuint16x4_t svld4_u16(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_s8)))
svint8x4_t svld4_s8(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_f64)))
svfloat64x4_t svld4_f64(svbool_t, float64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_f32)))
svfloat32x4_t svld4_f32(svbool_t, float32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_f16)))
svfloat16x4_t svld4_f16(svbool_t, float16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_s32)))
svint32x4_t svld4_s32(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_s64)))
svint64x4_t svld4_s64(svbool_t, int64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_s16)))
svint16x4_t svld4_s16(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_u8)))
svuint8x4_t svld4_vnum_u8(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_u32)))
svuint32x4_t svld4_vnum_u32(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_u64)))
svuint64x4_t svld4_vnum_u64(svbool_t, uint64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_u16)))
svuint16x4_t svld4_vnum_u16(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_s8)))
svint8x4_t svld4_vnum_s8(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_f64)))
svfloat64x4_t svld4_vnum_f64(svbool_t, float64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_f32)))
svfloat32x4_t svld4_vnum_f32(svbool_t, float32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_f16)))
svfloat16x4_t svld4_vnum_f16(svbool_t, float16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_s32)))
svint32x4_t svld4_vnum_s32(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_s64)))
svint64x4_t svld4_vnum_s64(svbool_t, int64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_s16)))
svint16x4_t svld4_vnum_s16(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_u8)))
svuint8_t svldff1_u8(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_u32)))
svuint32_t svldff1_u32(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_u64)))
svuint64_t svldff1_u64(svbool_t, uint64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_u16)))
svuint16_t svldff1_u16(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_s8)))
svint8_t svldff1_s8(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_f64)))
svfloat64_t svldff1_f64(svbool_t, float64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_f32)))
svfloat32_t svldff1_f32(svbool_t, float32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_f16)))
svfloat16_t svldff1_f16(svbool_t, float16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_s32)))
svint32_t svldff1_s32(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_s64)))
svint64_t svldff1_s64(svbool_t, int64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_s16)))
svint16_t svldff1_s16(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_index_u32)))
svuint32_t svldff1_gather_u32base_index_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_index_u64)))
svuint64_t svldff1_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_index_f64)))
svfloat64_t svldff1_gather_u64base_index_f64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_index_f32)))
svfloat32_t svldff1_gather_u32base_index_f32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_index_s32)))
svint32_t svldff1_gather_u32base_index_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_index_s64)))
svint64_t svldff1_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_offset_u32)))
svuint32_t svldff1_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_offset_u64)))
svuint64_t svldff1_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_offset_f64)))
svfloat64_t svldff1_gather_u64base_offset_f64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_offset_f32)))
svfloat32_t svldff1_gather_u32base_offset_f32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_offset_s32)))
svint32_t svldff1_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_offset_s64)))
svint64_t svldff1_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_u32)))
svuint32_t svldff1_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_u64)))
svuint64_t svldff1_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_f64)))
svfloat64_t svldff1_gather_u64base_f64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_f32)))
svfloat32_t svldff1_gather_u32base_f32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_s32)))
svint32_t svldff1_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_s64)))
svint64_t svldff1_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32index_u32)))
svuint32_t svldff1_gather_s32index_u32(svbool_t, uint32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32index_f32)))
svfloat32_t svldff1_gather_s32index_f32(svbool_t, float32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32index_s32)))
svint32_t svldff1_gather_s32index_s32(svbool_t, int32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32index_u32)))
svuint32_t svldff1_gather_u32index_u32(svbool_t, uint32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32index_f32)))
svfloat32_t svldff1_gather_u32index_f32(svbool_t, float32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32index_s32)))
svint32_t svldff1_gather_u32index_s32(svbool_t, int32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64index_u64)))
svuint64_t svldff1_gather_s64index_u64(svbool_t, uint64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64index_f64)))
svfloat64_t svldff1_gather_s64index_f64(svbool_t, float64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64index_s64)))
svint64_t svldff1_gather_s64index_s64(svbool_t, int64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64index_u64)))
svuint64_t svldff1_gather_u64index_u64(svbool_t, uint64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64index_f64)))
svfloat64_t svldff1_gather_u64index_f64(svbool_t, float64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64index_s64)))
svint64_t svldff1_gather_u64index_s64(svbool_t, int64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32offset_u32)))
svuint32_t svldff1_gather_s32offset_u32(svbool_t, uint32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32offset_f32)))
svfloat32_t svldff1_gather_s32offset_f32(svbool_t, float32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32offset_s32)))
svint32_t svldff1_gather_s32offset_s32(svbool_t, int32_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32offset_u32)))
svuint32_t svldff1_gather_u32offset_u32(svbool_t, uint32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32offset_f32)))
svfloat32_t svldff1_gather_u32offset_f32(svbool_t, float32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32offset_s32)))
svint32_t svldff1_gather_u32offset_s32(svbool_t, int32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64offset_u64)))
svuint64_t svldff1_gather_s64offset_u64(svbool_t, uint64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64offset_f64)))
svfloat64_t svldff1_gather_s64offset_f64(svbool_t, float64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64offset_s64)))
svint64_t svldff1_gather_s64offset_s64(svbool_t, int64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64offset_u64)))
svuint64_t svldff1_gather_u64offset_u64(svbool_t, uint64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64offset_f64)))
svfloat64_t svldff1_gather_u64offset_f64(svbool_t, float64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64offset_s64)))
svint64_t svldff1_gather_u64offset_s64(svbool_t, int64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_u8)))
svuint8_t svldff1_vnum_u8(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_u32)))
svuint32_t svldff1_vnum_u32(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_u64)))
svuint64_t svldff1_vnum_u64(svbool_t, uint64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_u16)))
svuint16_t svldff1_vnum_u16(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_s8)))
svint8_t svldff1_vnum_s8(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_f64)))
svfloat64_t svldff1_vnum_f64(svbool_t, float64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_f32)))
svfloat32_t svldff1_vnum_f32(svbool_t, float32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_f16)))
svfloat16_t svldff1_vnum_f16(svbool_t, float16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_s32)))
svint32_t svldff1_vnum_s32(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_s64)))
svint64_t svldff1_vnum_s64(svbool_t, int64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_s16)))
svint16_t svldff1_vnum_s16(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32base_offset_u32)))
svuint32_t svldff1sb_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64base_offset_u64)))
svuint64_t svldff1sb_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32base_offset_s32)))
svint32_t svldff1sb_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64base_offset_s64)))
svint64_t svldff1sb_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32base_u32)))
svuint32_t svldff1sb_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64base_u64)))
svuint64_t svldff1sb_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32base_s32)))
svint32_t svldff1sb_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64base_s64)))
svint64_t svldff1sb_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_s32offset_u32)))
svuint32_t svldff1sb_gather_s32offset_u32(svbool_t, int8_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_s32offset_s32)))
svint32_t svldff1sb_gather_s32offset_s32(svbool_t, int8_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32offset_u32)))
svuint32_t svldff1sb_gather_u32offset_u32(svbool_t, int8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32offset_s32)))
svint32_t svldff1sb_gather_u32offset_s32(svbool_t, int8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_s64offset_u64)))
svuint64_t svldff1sb_gather_s64offset_u64(svbool_t, int8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_s64offset_s64)))
svint64_t svldff1sb_gather_s64offset_s64(svbool_t, int8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64offset_u64)))
svuint64_t svldff1sb_gather_u64offset_u64(svbool_t, int8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64offset_s64)))
svint64_t svldff1sb_gather_u64offset_s64(svbool_t, int8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_vnum_u32)))
svuint32_t svldff1sb_vnum_u32(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_vnum_u64)))
svuint64_t svldff1sb_vnum_u64(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_vnum_u16)))
svuint16_t svldff1sb_vnum_u16(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_vnum_s32)))
svint32_t svldff1sb_vnum_s32(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_vnum_s64)))
svint64_t svldff1sb_vnum_s64(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_vnum_s16)))
svint16_t svldff1sb_vnum_s16(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_u32)))
svuint32_t svldff1sb_u32(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_u64)))
svuint64_t svldff1sb_u64(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_u16)))
svuint16_t svldff1sb_u16(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_s32)))
svint32_t svldff1sb_s32(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_s64)))
svint64_t svldff1sb_s64(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_s16)))
svint16_t svldff1sb_s16(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_index_u32)))
svuint32_t svldff1sh_gather_u32base_index_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_index_u64)))
svuint64_t svldff1sh_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_index_s32)))
svint32_t svldff1sh_gather_u32base_index_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_index_s64)))
svint64_t svldff1sh_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_offset_u32)))
svuint32_t svldff1sh_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_offset_u64)))
svuint64_t svldff1sh_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_offset_s32)))
svint32_t svldff1sh_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_offset_s64)))
svint64_t svldff1sh_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_u32)))
svuint32_t svldff1sh_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_u64)))
svuint64_t svldff1sh_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_s32)))
svint32_t svldff1sh_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_s64)))
svint64_t svldff1sh_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s32index_u32)))
svuint32_t svldff1sh_gather_s32index_u32(svbool_t, int16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s32index_s32)))
svint32_t svldff1sh_gather_s32index_s32(svbool_t, int16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32index_u32)))
svuint32_t svldff1sh_gather_u32index_u32(svbool_t, int16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32index_s32)))
svint32_t svldff1sh_gather_u32index_s32(svbool_t, int16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s64index_u64)))
svuint64_t svldff1sh_gather_s64index_u64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s64index_s64)))
svint64_t svldff1sh_gather_s64index_s64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64index_u64)))
svuint64_t svldff1sh_gather_u64index_u64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64index_s64)))
svint64_t svldff1sh_gather_u64index_s64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s32offset_u32)))
svuint32_t svldff1sh_gather_s32offset_u32(svbool_t, int16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s32offset_s32)))
svint32_t svldff1sh_gather_s32offset_s32(svbool_t, int16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32offset_u32)))
svuint32_t svldff1sh_gather_u32offset_u32(svbool_t, int16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32offset_s32)))
svint32_t svldff1sh_gather_u32offset_s32(svbool_t, int16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s64offset_u64)))
svuint64_t svldff1sh_gather_s64offset_u64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s64offset_s64)))
svint64_t svldff1sh_gather_s64offset_s64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64offset_u64)))
svuint64_t svldff1sh_gather_u64offset_u64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64offset_s64)))
svint64_t svldff1sh_gather_u64offset_s64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_vnum_u32)))
svuint32_t svldff1sh_vnum_u32(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_vnum_u64)))
svuint64_t svldff1sh_vnum_u64(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_vnum_s32)))
svint32_t svldff1sh_vnum_s32(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_vnum_s64)))
svint64_t svldff1sh_vnum_s64(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_u32)))
svuint32_t svldff1sh_u32(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_u64)))
svuint64_t svldff1sh_u64(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_s32)))
svint32_t svldff1sh_s32(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_s64)))
svint64_t svldff1sh_s64(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_index_u64)))
svuint64_t svldff1sw_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_index_s64)))
svint64_t svldff1sw_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_offset_u64)))
svuint64_t svldff1sw_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_offset_s64)))
svint64_t svldff1sw_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_u64)))
svuint64_t svldff1sw_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_s64)))
svint64_t svldff1sw_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_s64index_u64)))
svuint64_t svldff1sw_gather_s64index_u64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_s64index_s64)))
svint64_t svldff1sw_gather_s64index_s64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64index_u64)))
svuint64_t svldff1sw_gather_u64index_u64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64index_s64)))
svint64_t svldff1sw_gather_u64index_s64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_s64offset_u64)))
svuint64_t svldff1sw_gather_s64offset_u64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_s64offset_s64)))
svint64_t svldff1sw_gather_s64offset_s64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64offset_u64)))
svuint64_t svldff1sw_gather_u64offset_u64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64offset_s64)))
svint64_t svldff1sw_gather_u64offset_s64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_vnum_u64)))
svuint64_t svldff1sw_vnum_u64(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_vnum_s64)))
svint64_t svldff1sw_vnum_s64(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_u64)))
svuint64_t svldff1sw_u64(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_s64)))
svint64_t svldff1sw_s64(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32base_offset_u32)))
svuint32_t svldff1ub_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64base_offset_u64)))
svuint64_t svldff1ub_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32base_offset_s32)))
svint32_t svldff1ub_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64base_offset_s64)))
svint64_t svldff1ub_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32base_u32)))
svuint32_t svldff1ub_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64base_u64)))
svuint64_t svldff1ub_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32base_s32)))
svint32_t svldff1ub_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64base_s64)))
svint64_t svldff1ub_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_s32offset_u32)))
svuint32_t svldff1ub_gather_s32offset_u32(svbool_t, uint8_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_s32offset_s32)))
svint32_t svldff1ub_gather_s32offset_s32(svbool_t, uint8_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32offset_u32)))
svuint32_t svldff1ub_gather_u32offset_u32(svbool_t, uint8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32offset_s32)))
svint32_t svldff1ub_gather_u32offset_s32(svbool_t, uint8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_s64offset_u64)))
svuint64_t svldff1ub_gather_s64offset_u64(svbool_t, uint8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_s64offset_s64)))
svint64_t svldff1ub_gather_s64offset_s64(svbool_t, uint8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64offset_u64)))
svuint64_t svldff1ub_gather_u64offset_u64(svbool_t, uint8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64offset_s64)))
svint64_t svldff1ub_gather_u64offset_s64(svbool_t, uint8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_vnum_u32)))
svuint32_t svldff1ub_vnum_u32(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_vnum_u64)))
svuint64_t svldff1ub_vnum_u64(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_vnum_u16)))
svuint16_t svldff1ub_vnum_u16(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_vnum_s32)))
svint32_t svldff1ub_vnum_s32(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_vnum_s64)))
svint64_t svldff1ub_vnum_s64(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_vnum_s16)))
svint16_t svldff1ub_vnum_s16(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_u32)))
svuint32_t svldff1ub_u32(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_u64)))
svuint64_t svldff1ub_u64(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_u16)))
svuint16_t svldff1ub_u16(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_s32)))
svint32_t svldff1ub_s32(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_s64)))
svint64_t svldff1ub_s64(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_s16)))
svint16_t svldff1ub_s16(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_index_u32)))
svuint32_t svldff1uh_gather_u32base_index_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_index_u64)))
svuint64_t svldff1uh_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_index_s32)))
svint32_t svldff1uh_gather_u32base_index_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_index_s64)))
svint64_t svldff1uh_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_offset_u32)))
svuint32_t svldff1uh_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_offset_u64)))
svuint64_t svldff1uh_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_offset_s32)))
svint32_t svldff1uh_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_offset_s64)))
svint64_t svldff1uh_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_u32)))
svuint32_t svldff1uh_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_u64)))
svuint64_t svldff1uh_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_s32)))
svint32_t svldff1uh_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_s64)))
svint64_t svldff1uh_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s32index_u32)))
svuint32_t svldff1uh_gather_s32index_u32(svbool_t, uint16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s32index_s32)))
svint32_t svldff1uh_gather_s32index_s32(svbool_t, uint16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32index_u32)))
svuint32_t svldff1uh_gather_u32index_u32(svbool_t, uint16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32index_s32)))
svint32_t svldff1uh_gather_u32index_s32(svbool_t, uint16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s64index_u64)))
svuint64_t svldff1uh_gather_s64index_u64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s64index_s64)))
svint64_t svldff1uh_gather_s64index_s64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64index_u64)))
svuint64_t svldff1uh_gather_u64index_u64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64index_s64)))
svint64_t svldff1uh_gather_u64index_s64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s32offset_u32)))
svuint32_t svldff1uh_gather_s32offset_u32(svbool_t, uint16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s32offset_s32)))
svint32_t svldff1uh_gather_s32offset_s32(svbool_t, uint16_t const *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32offset_u32)))
svuint32_t svldff1uh_gather_u32offset_u32(svbool_t, uint16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32offset_s32)))
svint32_t svldff1uh_gather_u32offset_s32(svbool_t, uint16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s64offset_u64)))
svuint64_t svldff1uh_gather_s64offset_u64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s64offset_s64)))
svint64_t svldff1uh_gather_s64offset_s64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64offset_u64)))
svuint64_t svldff1uh_gather_u64offset_u64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64offset_s64)))
svint64_t svldff1uh_gather_u64offset_s64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_vnum_u32)))
svuint32_t svldff1uh_vnum_u32(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_vnum_u64)))
svuint64_t svldff1uh_vnum_u64(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_vnum_s32)))
svint32_t svldff1uh_vnum_s32(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_vnum_s64)))
svint64_t svldff1uh_vnum_s64(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_u32)))
svuint32_t svldff1uh_u32(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_u64)))
svuint64_t svldff1uh_u64(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_s32)))
svint32_t svldff1uh_s32(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_s64)))
svint64_t svldff1uh_s64(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_index_u64)))
svuint64_t svldff1uw_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_index_s64)))
svint64_t svldff1uw_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_offset_u64)))
svuint64_t svldff1uw_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_offset_s64)))
svint64_t svldff1uw_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_u64)))
svuint64_t svldff1uw_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_s64)))
svint64_t svldff1uw_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_s64index_u64)))
svuint64_t svldff1uw_gather_s64index_u64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_s64index_s64)))
svint64_t svldff1uw_gather_s64index_s64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64index_u64)))
svuint64_t svldff1uw_gather_u64index_u64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64index_s64)))
svint64_t svldff1uw_gather_u64index_s64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_s64offset_u64)))
svuint64_t svldff1uw_gather_s64offset_u64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_s64offset_s64)))
svint64_t svldff1uw_gather_s64offset_s64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64offset_u64)))
svuint64_t svldff1uw_gather_u64offset_u64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64offset_s64)))
svint64_t svldff1uw_gather_u64offset_s64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_vnum_u64)))
svuint64_t svldff1uw_vnum_u64(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_vnum_s64)))
svint64_t svldff1uw_vnum_s64(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_u64)))
svuint64_t svldff1uw_u64(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_s64)))
svint64_t svldff1uw_s64(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_u8)))
svuint8_t svldnf1_u8(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_u32)))
svuint32_t svldnf1_u32(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_u64)))
svuint64_t svldnf1_u64(svbool_t, uint64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_u16)))
svuint16_t svldnf1_u16(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_s8)))
svint8_t svldnf1_s8(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_f64)))
svfloat64_t svldnf1_f64(svbool_t, float64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_f32)))
svfloat32_t svldnf1_f32(svbool_t, float32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_f16)))
svfloat16_t svldnf1_f16(svbool_t, float16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_s32)))
svint32_t svldnf1_s32(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_s64)))
svint64_t svldnf1_s64(svbool_t, int64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_s16)))
svint16_t svldnf1_s16(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_u8)))
svuint8_t svldnf1_vnum_u8(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_u32)))
svuint32_t svldnf1_vnum_u32(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_u64)))
svuint64_t svldnf1_vnum_u64(svbool_t, uint64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_u16)))
svuint16_t svldnf1_vnum_u16(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_s8)))
svint8_t svldnf1_vnum_s8(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_f64)))
svfloat64_t svldnf1_vnum_f64(svbool_t, float64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_f32)))
svfloat32_t svldnf1_vnum_f32(svbool_t, float32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_f16)))
svfloat16_t svldnf1_vnum_f16(svbool_t, float16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_s32)))
svint32_t svldnf1_vnum_s32(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_s64)))
svint64_t svldnf1_vnum_s64(svbool_t, int64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_s16)))
svint16_t svldnf1_vnum_s16(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_vnum_u32)))
svuint32_t svldnf1sb_vnum_u32(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_vnum_u64)))
svuint64_t svldnf1sb_vnum_u64(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_vnum_u16)))
svuint16_t svldnf1sb_vnum_u16(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_vnum_s32)))
svint32_t svldnf1sb_vnum_s32(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_vnum_s64)))
svint64_t svldnf1sb_vnum_s64(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_vnum_s16)))
svint16_t svldnf1sb_vnum_s16(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_u32)))
svuint32_t svldnf1sb_u32(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_u64)))
svuint64_t svldnf1sb_u64(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_u16)))
svuint16_t svldnf1sb_u16(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_s32)))
svint32_t svldnf1sb_s32(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_s64)))
svint64_t svldnf1sb_s64(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sb_s16)))
svint16_t svldnf1sb_s16(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sh_vnum_u32)))
svuint32_t svldnf1sh_vnum_u32(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sh_vnum_u64)))
svuint64_t svldnf1sh_vnum_u64(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sh_vnum_s32)))
svint32_t svldnf1sh_vnum_s32(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sh_vnum_s64)))
svint64_t svldnf1sh_vnum_s64(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sh_u32)))
svuint32_t svldnf1sh_u32(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sh_u64)))
svuint64_t svldnf1sh_u64(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sh_s32)))
svint32_t svldnf1sh_s32(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sh_s64)))
svint64_t svldnf1sh_s64(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sw_vnum_u64)))
svuint64_t svldnf1sw_vnum_u64(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sw_vnum_s64)))
svint64_t svldnf1sw_vnum_s64(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sw_u64)))
svuint64_t svldnf1sw_u64(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1sw_s64)))
svint64_t svldnf1sw_s64(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_vnum_u32)))
svuint32_t svldnf1ub_vnum_u32(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_vnum_u64)))
svuint64_t svldnf1ub_vnum_u64(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_vnum_u16)))
svuint16_t svldnf1ub_vnum_u16(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_vnum_s32)))
svint32_t svldnf1ub_vnum_s32(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_vnum_s64)))
svint64_t svldnf1ub_vnum_s64(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_vnum_s16)))
svint16_t svldnf1ub_vnum_s16(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_u32)))
svuint32_t svldnf1ub_u32(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_u64)))
svuint64_t svldnf1ub_u64(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_u16)))
svuint16_t svldnf1ub_u16(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_s32)))
svint32_t svldnf1ub_s32(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_s64)))
svint64_t svldnf1ub_s64(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1ub_s16)))
svint16_t svldnf1ub_s16(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uh_vnum_u32)))
svuint32_t svldnf1uh_vnum_u32(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uh_vnum_u64)))
svuint64_t svldnf1uh_vnum_u64(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uh_vnum_s32)))
svint32_t svldnf1uh_vnum_s32(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uh_vnum_s64)))
svint64_t svldnf1uh_vnum_s64(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uh_u32)))
svuint32_t svldnf1uh_u32(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uh_u64)))
svuint64_t svldnf1uh_u64(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uh_s32)))
svint32_t svldnf1uh_s32(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uh_s64)))
svint64_t svldnf1uh_s64(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uw_vnum_u64)))
svuint64_t svldnf1uw_vnum_u64(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uw_vnum_s64)))
svint64_t svldnf1uw_vnum_s64(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uw_u64)))
svuint64_t svldnf1uw_u64(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1uw_s64)))
svint64_t svldnf1uw_s64(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_u8)))
svuint8_t svldnt1_u8(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_u32)))
svuint32_t svldnt1_u32(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_u64)))
svuint64_t svldnt1_u64(svbool_t, uint64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_u16)))
svuint16_t svldnt1_u16(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_s8)))
svint8_t svldnt1_s8(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_f64)))
svfloat64_t svldnt1_f64(svbool_t, float64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_f32)))
svfloat32_t svldnt1_f32(svbool_t, float32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_f16)))
svfloat16_t svldnt1_f16(svbool_t, float16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_s32)))
svint32_t svldnt1_s32(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_s64)))
svint64_t svldnt1_s64(svbool_t, int64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_s16)))
svint16_t svldnt1_s16(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_u8)))
svuint8_t svldnt1_vnum_u8(svbool_t, uint8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_u32)))
svuint32_t svldnt1_vnum_u32(svbool_t, uint32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_u64)))
svuint64_t svldnt1_vnum_u64(svbool_t, uint64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_u16)))
svuint16_t svldnt1_vnum_u16(svbool_t, uint16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_s8)))
svint8_t svldnt1_vnum_s8(svbool_t, int8_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_f64)))
svfloat64_t svldnt1_vnum_f64(svbool_t, float64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_f32)))
svfloat32_t svldnt1_vnum_f32(svbool_t, float32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_f16)))
svfloat16_t svldnt1_vnum_f16(svbool_t, float16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_s32)))
svint32_t svldnt1_vnum_s32(svbool_t, int32_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_s64)))
svint64_t svldnt1_vnum_s64(svbool_t, int64_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_s16)))
svint16_t svldnt1_vnum_s16(svbool_t, int16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_u8)))
uint64_t svlen_u8(svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_u32)))
uint64_t svlen_u32(svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_u64)))
uint64_t svlen_u64(svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_u16)))
uint64_t svlen_u16(svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_s8)))
uint64_t svlen_s8(svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_f64)))
uint64_t svlen_f64(svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_f32)))
uint64_t svlen_f32(svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_f16)))
uint64_t svlen_f16(svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_s32)))
uint64_t svlen_s32(svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_s64)))
uint64_t svlen_s64(svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_s16)))
uint64_t svlen_s16(svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u8_m)))
svuint8_t svlsl_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u32_m)))
svuint32_t svlsl_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u64_m)))
svuint64_t svlsl_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u16_m)))
svuint16_t svlsl_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s8_m)))
svint8_t svlsl_n_s8_m(svbool_t, svint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s32_m)))
svint32_t svlsl_n_s32_m(svbool_t, svint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s64_m)))
svint64_t svlsl_n_s64_m(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s16_m)))
svint16_t svlsl_n_s16_m(svbool_t, svint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u8_x)))
svuint8_t svlsl_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u32_x)))
svuint32_t svlsl_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u64_x)))
svuint64_t svlsl_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u16_x)))
svuint16_t svlsl_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s8_x)))
svint8_t svlsl_n_s8_x(svbool_t, svint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s32_x)))
svint32_t svlsl_n_s32_x(svbool_t, svint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s64_x)))
svint64_t svlsl_n_s64_x(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s16_x)))
svint16_t svlsl_n_s16_x(svbool_t, svint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u8_z)))
svuint8_t svlsl_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u32_z)))
svuint32_t svlsl_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u64_z)))
svuint64_t svlsl_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u16_z)))
svuint16_t svlsl_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s8_z)))
svint8_t svlsl_n_s8_z(svbool_t, svint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s32_z)))
svint32_t svlsl_n_s32_z(svbool_t, svint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s64_z)))
svint64_t svlsl_n_s64_z(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s16_z)))
svint16_t svlsl_n_s16_z(svbool_t, svint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u8_m)))
svuint8_t svlsl_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u32_m)))
svuint32_t svlsl_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u64_m)))
svuint64_t svlsl_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u16_m)))
svuint16_t svlsl_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s8_m)))
svint8_t svlsl_s8_m(svbool_t, svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s32_m)))
svint32_t svlsl_s32_m(svbool_t, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s64_m)))
svint64_t svlsl_s64_m(svbool_t, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s16_m)))
svint16_t svlsl_s16_m(svbool_t, svint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u8_x)))
svuint8_t svlsl_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u32_x)))
svuint32_t svlsl_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u64_x)))
svuint64_t svlsl_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u16_x)))
svuint16_t svlsl_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s8_x)))
svint8_t svlsl_s8_x(svbool_t, svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s32_x)))
svint32_t svlsl_s32_x(svbool_t, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s64_x)))
svint64_t svlsl_s64_x(svbool_t, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s16_x)))
svint16_t svlsl_s16_x(svbool_t, svint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u8_z)))
svuint8_t svlsl_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u32_z)))
svuint32_t svlsl_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u64_z)))
svuint64_t svlsl_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u16_z)))
svuint16_t svlsl_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s8_z)))
svint8_t svlsl_s8_z(svbool_t, svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s32_z)))
svint32_t svlsl_s32_z(svbool_t, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s64_z)))
svint64_t svlsl_s64_z(svbool_t, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s16_z)))
svint16_t svlsl_s16_z(svbool_t, svint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u8_m)))
svuint8_t svlsl_wide_n_u8_m(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u32_m)))
svuint32_t svlsl_wide_n_u32_m(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u16_m)))
svuint16_t svlsl_wide_n_u16_m(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s8_m)))
svint8_t svlsl_wide_n_s8_m(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s32_m)))
svint32_t svlsl_wide_n_s32_m(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s16_m)))
svint16_t svlsl_wide_n_s16_m(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u8_x)))
svuint8_t svlsl_wide_n_u8_x(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u32_x)))
svuint32_t svlsl_wide_n_u32_x(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u16_x)))
svuint16_t svlsl_wide_n_u16_x(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s8_x)))
svint8_t svlsl_wide_n_s8_x(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s32_x)))
svint32_t svlsl_wide_n_s32_x(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s16_x)))
svint16_t svlsl_wide_n_s16_x(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u8_z)))
svuint8_t svlsl_wide_n_u8_z(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u32_z)))
svuint32_t svlsl_wide_n_u32_z(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u16_z)))
svuint16_t svlsl_wide_n_u16_z(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s8_z)))
svint8_t svlsl_wide_n_s8_z(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s32_z)))
svint32_t svlsl_wide_n_s32_z(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s16_z)))
svint16_t svlsl_wide_n_s16_z(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u8_m)))
svuint8_t svlsl_wide_u8_m(svbool_t, svuint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u32_m)))
svuint32_t svlsl_wide_u32_m(svbool_t, svuint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u16_m)))
svuint16_t svlsl_wide_u16_m(svbool_t, svuint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s8_m)))
svint8_t svlsl_wide_s8_m(svbool_t, svint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s32_m)))
svint32_t svlsl_wide_s32_m(svbool_t, svint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s16_m)))
svint16_t svlsl_wide_s16_m(svbool_t, svint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u8_x)))
svuint8_t svlsl_wide_u8_x(svbool_t, svuint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u32_x)))
svuint32_t svlsl_wide_u32_x(svbool_t, svuint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u16_x)))
svuint16_t svlsl_wide_u16_x(svbool_t, svuint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s8_x)))
svint8_t svlsl_wide_s8_x(svbool_t, svint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s32_x)))
svint32_t svlsl_wide_s32_x(svbool_t, svint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s16_x)))
svint16_t svlsl_wide_s16_x(svbool_t, svint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u8_z)))
svuint8_t svlsl_wide_u8_z(svbool_t, svuint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u32_z)))
svuint32_t svlsl_wide_u32_z(svbool_t, svuint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u16_z)))
svuint16_t svlsl_wide_u16_z(svbool_t, svuint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s8_z)))
svint8_t svlsl_wide_s8_z(svbool_t, svint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s32_z)))
svint32_t svlsl_wide_s32_z(svbool_t, svint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s16_z)))
svint16_t svlsl_wide_s16_z(svbool_t, svint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u8_m)))
svuint8_t svlsr_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u32_m)))
svuint32_t svlsr_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u64_m)))
svuint64_t svlsr_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u16_m)))
svuint16_t svlsr_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u8_x)))
svuint8_t svlsr_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u32_x)))
svuint32_t svlsr_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u64_x)))
svuint64_t svlsr_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u16_x)))
svuint16_t svlsr_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u8_z)))
svuint8_t svlsr_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u32_z)))
svuint32_t svlsr_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u64_z)))
svuint64_t svlsr_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u16_z)))
svuint16_t svlsr_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u8_m)))
svuint8_t svlsr_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u32_m)))
svuint32_t svlsr_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u64_m)))
svuint64_t svlsr_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u16_m)))
svuint16_t svlsr_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u8_x)))
svuint8_t svlsr_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u32_x)))
svuint32_t svlsr_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u64_x)))
svuint64_t svlsr_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u16_x)))
svuint16_t svlsr_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u8_z)))
svuint8_t svlsr_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u32_z)))
svuint32_t svlsr_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u64_z)))
svuint64_t svlsr_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u16_z)))
svuint16_t svlsr_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u8_m)))
svuint8_t svlsr_wide_n_u8_m(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u32_m)))
svuint32_t svlsr_wide_n_u32_m(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u16_m)))
svuint16_t svlsr_wide_n_u16_m(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u8_x)))
svuint8_t svlsr_wide_n_u8_x(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u32_x)))
svuint32_t svlsr_wide_n_u32_x(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u16_x)))
svuint16_t svlsr_wide_n_u16_x(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u8_z)))
svuint8_t svlsr_wide_n_u8_z(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u32_z)))
svuint32_t svlsr_wide_n_u32_z(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u16_z)))
svuint16_t svlsr_wide_n_u16_z(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u8_m)))
svuint8_t svlsr_wide_u8_m(svbool_t, svuint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u32_m)))
svuint32_t svlsr_wide_u32_m(svbool_t, svuint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u16_m)))
svuint16_t svlsr_wide_u16_m(svbool_t, svuint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u8_x)))
svuint8_t svlsr_wide_u8_x(svbool_t, svuint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u32_x)))
svuint32_t svlsr_wide_u32_x(svbool_t, svuint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u16_x)))
svuint16_t svlsr_wide_u16_x(svbool_t, svuint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u8_z)))
svuint8_t svlsr_wide_u8_z(svbool_t, svuint8_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u32_z)))
svuint32_t svlsr_wide_u32_z(svbool_t, svuint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u16_z)))
svuint16_t svlsr_wide_u16_z(svbool_t, svuint16_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f64_m)))
svfloat64_t svmad_n_f64_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f32_m)))
svfloat32_t svmad_n_f32_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f16_m)))
svfloat16_t svmad_n_f16_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f64_x)))
svfloat64_t svmad_n_f64_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f32_x)))
svfloat32_t svmad_n_f32_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f16_x)))
svfloat16_t svmad_n_f16_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f64_z)))
svfloat64_t svmad_n_f64_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f32_z)))
svfloat32_t svmad_n_f32_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f16_z)))
svfloat16_t svmad_n_f16_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u8_m)))
svuint8_t svmad_n_u8_m(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u32_m)))
svuint32_t svmad_n_u32_m(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u64_m)))
svuint64_t svmad_n_u64_m(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u16_m)))
svuint16_t svmad_n_u16_m(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s8_m)))
svint8_t svmad_n_s8_m(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s32_m)))
svint32_t svmad_n_s32_m(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s64_m)))
svint64_t svmad_n_s64_m(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s16_m)))
svint16_t svmad_n_s16_m(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u8_x)))
svuint8_t svmad_n_u8_x(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u32_x)))
svuint32_t svmad_n_u32_x(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u64_x)))
svuint64_t svmad_n_u64_x(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u16_x)))
svuint16_t svmad_n_u16_x(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s8_x)))
svint8_t svmad_n_s8_x(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s32_x)))
svint32_t svmad_n_s32_x(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s64_x)))
svint64_t svmad_n_s64_x(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s16_x)))
svint16_t svmad_n_s16_x(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u8_z)))
svuint8_t svmad_n_u8_z(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u32_z)))
svuint32_t svmad_n_u32_z(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u64_z)))
svuint64_t svmad_n_u64_z(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u16_z)))
svuint16_t svmad_n_u16_z(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s8_z)))
svint8_t svmad_n_s8_z(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s32_z)))
svint32_t svmad_n_s32_z(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s64_z)))
svint64_t svmad_n_s64_z(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s16_z)))
svint16_t svmad_n_s16_z(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f64_m)))
svfloat64_t svmad_f64_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f32_m)))
svfloat32_t svmad_f32_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f16_m)))
svfloat16_t svmad_f16_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f64_x)))
svfloat64_t svmad_f64_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f32_x)))
svfloat32_t svmad_f32_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f16_x)))
svfloat16_t svmad_f16_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f64_z)))
svfloat64_t svmad_f64_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f32_z)))
svfloat32_t svmad_f32_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f16_z)))
svfloat16_t svmad_f16_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u8_m)))
svuint8_t svmad_u8_m(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u32_m)))
svuint32_t svmad_u32_m(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u64_m)))
svuint64_t svmad_u64_m(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u16_m)))
svuint16_t svmad_u16_m(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s8_m)))
svint8_t svmad_s8_m(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s32_m)))
svint32_t svmad_s32_m(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s64_m)))
svint64_t svmad_s64_m(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s16_m)))
svint16_t svmad_s16_m(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u8_x)))
svuint8_t svmad_u8_x(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u32_x)))
svuint32_t svmad_u32_x(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u64_x)))
svuint64_t svmad_u64_x(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u16_x)))
svuint16_t svmad_u16_x(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s8_x)))
svint8_t svmad_s8_x(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s32_x)))
svint32_t svmad_s32_x(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s64_x)))
svint64_t svmad_s64_x(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s16_x)))
svint16_t svmad_s16_x(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u8_z)))
svuint8_t svmad_u8_z(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u32_z)))
svuint32_t svmad_u32_z(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u64_z)))
svuint64_t svmad_u64_z(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u16_z)))
svuint16_t svmad_u16_z(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s8_z)))
svint8_t svmad_s8_z(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s32_z)))
svint32_t svmad_s32_z(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s64_z)))
svint64_t svmad_s64_z(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s16_z)))
svint16_t svmad_s16_z(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f64_m)))
svfloat64_t svmax_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f32_m)))
svfloat32_t svmax_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f16_m)))
svfloat16_t svmax_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f64_x)))
svfloat64_t svmax_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f32_x)))
svfloat32_t svmax_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f16_x)))
svfloat16_t svmax_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f64_z)))
svfloat64_t svmax_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f32_z)))
svfloat32_t svmax_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f16_z)))
svfloat16_t svmax_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s8_m)))
svint8_t svmax_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s32_m)))
svint32_t svmax_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s64_m)))
svint64_t svmax_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s16_m)))
svint16_t svmax_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s8_x)))
svint8_t svmax_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s32_x)))
svint32_t svmax_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s64_x)))
svint64_t svmax_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s16_x)))
svint16_t svmax_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s8_z)))
svint8_t svmax_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s32_z)))
svint32_t svmax_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s64_z)))
svint64_t svmax_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s16_z)))
svint16_t svmax_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u8_m)))
svuint8_t svmax_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u32_m)))
svuint32_t svmax_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u64_m)))
svuint64_t svmax_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u16_m)))
svuint16_t svmax_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u8_x)))
svuint8_t svmax_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u32_x)))
svuint32_t svmax_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u64_x)))
svuint64_t svmax_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u16_x)))
svuint16_t svmax_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u8_z)))
svuint8_t svmax_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u32_z)))
svuint32_t svmax_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u64_z)))
svuint64_t svmax_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u16_z)))
svuint16_t svmax_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f64_m)))
svfloat64_t svmax_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f32_m)))
svfloat32_t svmax_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f16_m)))
svfloat16_t svmax_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f64_x)))
svfloat64_t svmax_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f32_x)))
svfloat32_t svmax_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f16_x)))
svfloat16_t svmax_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f64_z)))
svfloat64_t svmax_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f32_z)))
svfloat32_t svmax_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f16_z)))
svfloat16_t svmax_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s8_m)))
svint8_t svmax_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s32_m)))
svint32_t svmax_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s64_m)))
svint64_t svmax_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s16_m)))
svint16_t svmax_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s8_x)))
svint8_t svmax_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s32_x)))
svint32_t svmax_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s64_x)))
svint64_t svmax_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s16_x)))
svint16_t svmax_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s8_z)))
svint8_t svmax_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s32_z)))
svint32_t svmax_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s64_z)))
svint64_t svmax_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s16_z)))
svint16_t svmax_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u8_m)))
svuint8_t svmax_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u32_m)))
svuint32_t svmax_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u64_m)))
svuint64_t svmax_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u16_m)))
svuint16_t svmax_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u8_x)))
svuint8_t svmax_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u32_x)))
svuint32_t svmax_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u64_x)))
svuint64_t svmax_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u16_x)))
svuint16_t svmax_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u8_z)))
svuint8_t svmax_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u32_z)))
svuint32_t svmax_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u64_z)))
svuint64_t svmax_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u16_z)))
svuint16_t svmax_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f64_m)))
svfloat64_t svmaxnm_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f32_m)))
svfloat32_t svmaxnm_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f16_m)))
svfloat16_t svmaxnm_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f64_x)))
svfloat64_t svmaxnm_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f32_x)))
svfloat32_t svmaxnm_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f16_x)))
svfloat16_t svmaxnm_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f64_z)))
svfloat64_t svmaxnm_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f32_z)))
svfloat32_t svmaxnm_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f16_z)))
svfloat16_t svmaxnm_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f64_m)))
svfloat64_t svmaxnm_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f32_m)))
svfloat32_t svmaxnm_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f16_m)))
svfloat16_t svmaxnm_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f64_x)))
svfloat64_t svmaxnm_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f32_x)))
svfloat32_t svmaxnm_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f16_x)))
svfloat16_t svmaxnm_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f64_z)))
svfloat64_t svmaxnm_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f32_z)))
svfloat32_t svmaxnm_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f16_z)))
svfloat16_t svmaxnm_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmv_f64)))
float64_t svmaxnmv_f64(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmv_f32)))
float32_t svmaxnmv_f32(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmv_f16)))
float16_t svmaxnmv_f16(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_f64)))
float64_t svmaxv_f64(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_f32)))
float32_t svmaxv_f32(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_f16)))
float16_t svmaxv_f16(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_s8)))
int8_t svmaxv_s8(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_s32)))
int32_t svmaxv_s32(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_s64)))
int64_t svmaxv_s64(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_s16)))
int16_t svmaxv_s16(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_u8)))
uint8_t svmaxv_u8(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_u32)))
uint32_t svmaxv_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_u64)))
uint64_t svmaxv_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_u16)))
uint16_t svmaxv_u16(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f64_m)))
svfloat64_t svmin_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f32_m)))
svfloat32_t svmin_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f16_m)))
svfloat16_t svmin_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f64_x)))
svfloat64_t svmin_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f32_x)))
svfloat32_t svmin_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f16_x)))
svfloat16_t svmin_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f64_z)))
svfloat64_t svmin_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f32_z)))
svfloat32_t svmin_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f16_z)))
svfloat16_t svmin_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s8_m)))
svint8_t svmin_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s32_m)))
svint32_t svmin_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s64_m)))
svint64_t svmin_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s16_m)))
svint16_t svmin_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s8_x)))
svint8_t svmin_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s32_x)))
svint32_t svmin_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s64_x)))
svint64_t svmin_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s16_x)))
svint16_t svmin_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s8_z)))
svint8_t svmin_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s32_z)))
svint32_t svmin_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s64_z)))
svint64_t svmin_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s16_z)))
svint16_t svmin_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u8_m)))
svuint8_t svmin_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u32_m)))
svuint32_t svmin_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u64_m)))
svuint64_t svmin_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u16_m)))
svuint16_t svmin_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u8_x)))
svuint8_t svmin_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u32_x)))
svuint32_t svmin_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u64_x)))
svuint64_t svmin_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u16_x)))
svuint16_t svmin_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u8_z)))
svuint8_t svmin_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u32_z)))
svuint32_t svmin_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u64_z)))
svuint64_t svmin_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u16_z)))
svuint16_t svmin_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f64_m)))
svfloat64_t svmin_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f32_m)))
svfloat32_t svmin_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f16_m)))
svfloat16_t svmin_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f64_x)))
svfloat64_t svmin_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f32_x)))
svfloat32_t svmin_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f16_x)))
svfloat16_t svmin_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f64_z)))
svfloat64_t svmin_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f32_z)))
svfloat32_t svmin_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f16_z)))
svfloat16_t svmin_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s8_m)))
svint8_t svmin_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s32_m)))
svint32_t svmin_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s64_m)))
svint64_t svmin_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s16_m)))
svint16_t svmin_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s8_x)))
svint8_t svmin_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s32_x)))
svint32_t svmin_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s64_x)))
svint64_t svmin_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s16_x)))
svint16_t svmin_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s8_z)))
svint8_t svmin_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s32_z)))
svint32_t svmin_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s64_z)))
svint64_t svmin_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s16_z)))
svint16_t svmin_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u8_m)))
svuint8_t svmin_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u32_m)))
svuint32_t svmin_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u64_m)))
svuint64_t svmin_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u16_m)))
svuint16_t svmin_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u8_x)))
svuint8_t svmin_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u32_x)))
svuint32_t svmin_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u64_x)))
svuint64_t svmin_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u16_x)))
svuint16_t svmin_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u8_z)))
svuint8_t svmin_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u32_z)))
svuint32_t svmin_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u64_z)))
svuint64_t svmin_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u16_z)))
svuint16_t svmin_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f64_m)))
svfloat64_t svminnm_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f32_m)))
svfloat32_t svminnm_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f16_m)))
svfloat16_t svminnm_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f64_x)))
svfloat64_t svminnm_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f32_x)))
svfloat32_t svminnm_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f16_x)))
svfloat16_t svminnm_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f64_z)))
svfloat64_t svminnm_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f32_z)))
svfloat32_t svminnm_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f16_z)))
svfloat16_t svminnm_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f64_m)))
svfloat64_t svminnm_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f32_m)))
svfloat32_t svminnm_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f16_m)))
svfloat16_t svminnm_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f64_x)))
svfloat64_t svminnm_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f32_x)))
svfloat32_t svminnm_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f16_x)))
svfloat16_t svminnm_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f64_z)))
svfloat64_t svminnm_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f32_z)))
svfloat32_t svminnm_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f16_z)))
svfloat16_t svminnm_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmv_f64)))
float64_t svminnmv_f64(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmv_f32)))
float32_t svminnmv_f32(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmv_f16)))
float16_t svminnmv_f16(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_f64)))
float64_t svminv_f64(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_f32)))
float32_t svminv_f32(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_f16)))
float16_t svminv_f16(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_s8)))
int8_t svminv_s8(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_s32)))
int32_t svminv_s32(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_s64)))
int64_t svminv_s64(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_s16)))
int16_t svminv_s16(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_u8)))
uint8_t svminv_u8(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_u32)))
uint32_t svminv_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_u64)))
uint64_t svminv_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_u16)))
uint16_t svminv_u16(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f64_m)))
svfloat64_t svmla_n_f64_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f32_m)))
svfloat32_t svmla_n_f32_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f16_m)))
svfloat16_t svmla_n_f16_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f64_x)))
svfloat64_t svmla_n_f64_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f32_x)))
svfloat32_t svmla_n_f32_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f16_x)))
svfloat16_t svmla_n_f16_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f64_z)))
svfloat64_t svmla_n_f64_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f32_z)))
svfloat32_t svmla_n_f32_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f16_z)))
svfloat16_t svmla_n_f16_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u8_m)))
svuint8_t svmla_n_u8_m(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u32_m)))
svuint32_t svmla_n_u32_m(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u64_m)))
svuint64_t svmla_n_u64_m(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u16_m)))
svuint16_t svmla_n_u16_m(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s8_m)))
svint8_t svmla_n_s8_m(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s32_m)))
svint32_t svmla_n_s32_m(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s64_m)))
svint64_t svmla_n_s64_m(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s16_m)))
svint16_t svmla_n_s16_m(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u8_x)))
svuint8_t svmla_n_u8_x(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u32_x)))
svuint32_t svmla_n_u32_x(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u64_x)))
svuint64_t svmla_n_u64_x(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u16_x)))
svuint16_t svmla_n_u16_x(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s8_x)))
svint8_t svmla_n_s8_x(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s32_x)))
svint32_t svmla_n_s32_x(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s64_x)))
svint64_t svmla_n_s64_x(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s16_x)))
svint16_t svmla_n_s16_x(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u8_z)))
svuint8_t svmla_n_u8_z(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u32_z)))
svuint32_t svmla_n_u32_z(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u64_z)))
svuint64_t svmla_n_u64_z(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u16_z)))
svuint16_t svmla_n_u16_z(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s8_z)))
svint8_t svmla_n_s8_z(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s32_z)))
svint32_t svmla_n_s32_z(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s64_z)))
svint64_t svmla_n_s64_z(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s16_z)))
svint16_t svmla_n_s16_z(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f64_m)))
svfloat64_t svmla_f64_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f32_m)))
svfloat32_t svmla_f32_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f16_m)))
svfloat16_t svmla_f16_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f64_x)))
svfloat64_t svmla_f64_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f32_x)))
svfloat32_t svmla_f32_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f16_x)))
svfloat16_t svmla_f16_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f64_z)))
svfloat64_t svmla_f64_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f32_z)))
svfloat32_t svmla_f32_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f16_z)))
svfloat16_t svmla_f16_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u8_m)))
svuint8_t svmla_u8_m(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u32_m)))
svuint32_t svmla_u32_m(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u64_m)))
svuint64_t svmla_u64_m(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u16_m)))
svuint16_t svmla_u16_m(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s8_m)))
svint8_t svmla_s8_m(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s32_m)))
svint32_t svmla_s32_m(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s64_m)))
svint64_t svmla_s64_m(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s16_m)))
svint16_t svmla_s16_m(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u8_x)))
svuint8_t svmla_u8_x(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u32_x)))
svuint32_t svmla_u32_x(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u64_x)))
svuint64_t svmla_u64_x(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u16_x)))
svuint16_t svmla_u16_x(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s8_x)))
svint8_t svmla_s8_x(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s32_x)))
svint32_t svmla_s32_x(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s64_x)))
svint64_t svmla_s64_x(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s16_x)))
svint16_t svmla_s16_x(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u8_z)))
svuint8_t svmla_u8_z(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u32_z)))
svuint32_t svmla_u32_z(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u64_z)))
svuint64_t svmla_u64_z(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u16_z)))
svuint16_t svmla_u16_z(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s8_z)))
svint8_t svmla_s8_z(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s32_z)))
svint32_t svmla_s32_z(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s64_z)))
svint64_t svmla_s64_z(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s16_z)))
svint16_t svmla_s16_z(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_f64)))
svfloat64_t svmla_lane_f64(svfloat64_t, svfloat64_t, svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_f32)))
svfloat32_t svmla_lane_f32(svfloat32_t, svfloat32_t, svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_f16)))
svfloat16_t svmla_lane_f16(svfloat16_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f64_m)))
svfloat64_t svmls_n_f64_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f32_m)))
svfloat32_t svmls_n_f32_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f16_m)))
svfloat16_t svmls_n_f16_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f64_x)))
svfloat64_t svmls_n_f64_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f32_x)))
svfloat32_t svmls_n_f32_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f16_x)))
svfloat16_t svmls_n_f16_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f64_z)))
svfloat64_t svmls_n_f64_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f32_z)))
svfloat32_t svmls_n_f32_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f16_z)))
svfloat16_t svmls_n_f16_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u8_m)))
svuint8_t svmls_n_u8_m(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u32_m)))
svuint32_t svmls_n_u32_m(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u64_m)))
svuint64_t svmls_n_u64_m(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u16_m)))
svuint16_t svmls_n_u16_m(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s8_m)))
svint8_t svmls_n_s8_m(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s32_m)))
svint32_t svmls_n_s32_m(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s64_m)))
svint64_t svmls_n_s64_m(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s16_m)))
svint16_t svmls_n_s16_m(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u8_x)))
svuint8_t svmls_n_u8_x(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u32_x)))
svuint32_t svmls_n_u32_x(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u64_x)))
svuint64_t svmls_n_u64_x(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u16_x)))
svuint16_t svmls_n_u16_x(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s8_x)))
svint8_t svmls_n_s8_x(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s32_x)))
svint32_t svmls_n_s32_x(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s64_x)))
svint64_t svmls_n_s64_x(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s16_x)))
svint16_t svmls_n_s16_x(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u8_z)))
svuint8_t svmls_n_u8_z(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u32_z)))
svuint32_t svmls_n_u32_z(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u64_z)))
svuint64_t svmls_n_u64_z(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u16_z)))
svuint16_t svmls_n_u16_z(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s8_z)))
svint8_t svmls_n_s8_z(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s32_z)))
svint32_t svmls_n_s32_z(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s64_z)))
svint64_t svmls_n_s64_z(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s16_z)))
svint16_t svmls_n_s16_z(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f64_m)))
svfloat64_t svmls_f64_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f32_m)))
svfloat32_t svmls_f32_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f16_m)))
svfloat16_t svmls_f16_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f64_x)))
svfloat64_t svmls_f64_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f32_x)))
svfloat32_t svmls_f32_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f16_x)))
svfloat16_t svmls_f16_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f64_z)))
svfloat64_t svmls_f64_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f32_z)))
svfloat32_t svmls_f32_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f16_z)))
svfloat16_t svmls_f16_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u8_m)))
svuint8_t svmls_u8_m(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u32_m)))
svuint32_t svmls_u32_m(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u64_m)))
svuint64_t svmls_u64_m(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u16_m)))
svuint16_t svmls_u16_m(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s8_m)))
svint8_t svmls_s8_m(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s32_m)))
svint32_t svmls_s32_m(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s64_m)))
svint64_t svmls_s64_m(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s16_m)))
svint16_t svmls_s16_m(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u8_x)))
svuint8_t svmls_u8_x(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u32_x)))
svuint32_t svmls_u32_x(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u64_x)))
svuint64_t svmls_u64_x(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u16_x)))
svuint16_t svmls_u16_x(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s8_x)))
svint8_t svmls_s8_x(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s32_x)))
svint32_t svmls_s32_x(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s64_x)))
svint64_t svmls_s64_x(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s16_x)))
svint16_t svmls_s16_x(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u8_z)))
svuint8_t svmls_u8_z(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u32_z)))
svuint32_t svmls_u32_z(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u64_z)))
svuint64_t svmls_u64_z(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u16_z)))
svuint16_t svmls_u16_z(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s8_z)))
svint8_t svmls_s8_z(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s32_z)))
svint32_t svmls_s32_z(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s64_z)))
svint64_t svmls_s64_z(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s16_z)))
svint16_t svmls_s16_z(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_f64)))
svfloat64_t svmls_lane_f64(svfloat64_t, svfloat64_t, svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_f32)))
svfloat32_t svmls_lane_f32(svfloat32_t, svfloat32_t, svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_f16)))
svfloat16_t svmls_lane_f16(svfloat16_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmov_b_z)))
svbool_t svmov_b_z(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f64_m)))
svfloat64_t svmsb_n_f64_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f32_m)))
svfloat32_t svmsb_n_f32_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f16_m)))
svfloat16_t svmsb_n_f16_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f64_x)))
svfloat64_t svmsb_n_f64_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f32_x)))
svfloat32_t svmsb_n_f32_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f16_x)))
svfloat16_t svmsb_n_f16_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f64_z)))
svfloat64_t svmsb_n_f64_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f32_z)))
svfloat32_t svmsb_n_f32_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f16_z)))
svfloat16_t svmsb_n_f16_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u8_m)))
svuint8_t svmsb_n_u8_m(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u32_m)))
svuint32_t svmsb_n_u32_m(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u64_m)))
svuint64_t svmsb_n_u64_m(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u16_m)))
svuint16_t svmsb_n_u16_m(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s8_m)))
svint8_t svmsb_n_s8_m(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s32_m)))
svint32_t svmsb_n_s32_m(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s64_m)))
svint64_t svmsb_n_s64_m(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s16_m)))
svint16_t svmsb_n_s16_m(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u8_x)))
svuint8_t svmsb_n_u8_x(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u32_x)))
svuint32_t svmsb_n_u32_x(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u64_x)))
svuint64_t svmsb_n_u64_x(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u16_x)))
svuint16_t svmsb_n_u16_x(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s8_x)))
svint8_t svmsb_n_s8_x(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s32_x)))
svint32_t svmsb_n_s32_x(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s64_x)))
svint64_t svmsb_n_s64_x(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s16_x)))
svint16_t svmsb_n_s16_x(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u8_z)))
svuint8_t svmsb_n_u8_z(svbool_t, svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u32_z)))
svuint32_t svmsb_n_u32_z(svbool_t, svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u64_z)))
svuint64_t svmsb_n_u64_z(svbool_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u16_z)))
svuint16_t svmsb_n_u16_z(svbool_t, svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s8_z)))
svint8_t svmsb_n_s8_z(svbool_t, svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s32_z)))
svint32_t svmsb_n_s32_z(svbool_t, svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s64_z)))
svint64_t svmsb_n_s64_z(svbool_t, svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s16_z)))
svint16_t svmsb_n_s16_z(svbool_t, svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f64_m)))
svfloat64_t svmsb_f64_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f32_m)))
svfloat32_t svmsb_f32_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f16_m)))
svfloat16_t svmsb_f16_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f64_x)))
svfloat64_t svmsb_f64_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f32_x)))
svfloat32_t svmsb_f32_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f16_x)))
svfloat16_t svmsb_f16_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f64_z)))
svfloat64_t svmsb_f64_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f32_z)))
svfloat32_t svmsb_f32_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f16_z)))
svfloat16_t svmsb_f16_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u8_m)))
svuint8_t svmsb_u8_m(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u32_m)))
svuint32_t svmsb_u32_m(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u64_m)))
svuint64_t svmsb_u64_m(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u16_m)))
svuint16_t svmsb_u16_m(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s8_m)))
svint8_t svmsb_s8_m(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s32_m)))
svint32_t svmsb_s32_m(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s64_m)))
svint64_t svmsb_s64_m(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s16_m)))
svint16_t svmsb_s16_m(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u8_x)))
svuint8_t svmsb_u8_x(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u32_x)))
svuint32_t svmsb_u32_x(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u64_x)))
svuint64_t svmsb_u64_x(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u16_x)))
svuint16_t svmsb_u16_x(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s8_x)))
svint8_t svmsb_s8_x(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s32_x)))
svint32_t svmsb_s32_x(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s64_x)))
svint64_t svmsb_s64_x(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s16_x)))
svint16_t svmsb_s16_x(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u8_z)))
svuint8_t svmsb_u8_z(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u32_z)))
svuint32_t svmsb_u32_z(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u64_z)))
svuint64_t svmsb_u64_z(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u16_z)))
svuint16_t svmsb_u16_z(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s8_z)))
svint8_t svmsb_s8_z(svbool_t, svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s32_z)))
svint32_t svmsb_s32_z(svbool_t, svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s64_z)))
svint64_t svmsb_s64_z(svbool_t, svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s16_z)))
svint16_t svmsb_s16_z(svbool_t, svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f64_m)))
svfloat64_t svmul_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f32_m)))
svfloat32_t svmul_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f16_m)))
svfloat16_t svmul_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f64_x)))
svfloat64_t svmul_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f32_x)))
svfloat32_t svmul_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f16_x)))
svfloat16_t svmul_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f64_z)))
svfloat64_t svmul_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f32_z)))
svfloat32_t svmul_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f16_z)))
svfloat16_t svmul_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u8_m)))
svuint8_t svmul_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u32_m)))
svuint32_t svmul_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u64_m)))
svuint64_t svmul_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u16_m)))
svuint16_t svmul_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s8_m)))
svint8_t svmul_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s32_m)))
svint32_t svmul_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s64_m)))
svint64_t svmul_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s16_m)))
svint16_t svmul_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u8_x)))
svuint8_t svmul_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u32_x)))
svuint32_t svmul_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u64_x)))
svuint64_t svmul_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u16_x)))
svuint16_t svmul_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s8_x)))
svint8_t svmul_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s32_x)))
svint32_t svmul_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s64_x)))
svint64_t svmul_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s16_x)))
svint16_t svmul_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u8_z)))
svuint8_t svmul_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u32_z)))
svuint32_t svmul_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u64_z)))
svuint64_t svmul_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u16_z)))
svuint16_t svmul_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s8_z)))
svint8_t svmul_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s32_z)))
svint32_t svmul_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s64_z)))
svint64_t svmul_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s16_z)))
svint16_t svmul_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f64_m)))
svfloat64_t svmul_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f32_m)))
svfloat32_t svmul_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f16_m)))
svfloat16_t svmul_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f64_x)))
svfloat64_t svmul_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f32_x)))
svfloat32_t svmul_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f16_x)))
svfloat16_t svmul_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f64_z)))
svfloat64_t svmul_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f32_z)))
svfloat32_t svmul_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f16_z)))
svfloat16_t svmul_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u8_m)))
svuint8_t svmul_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u32_m)))
svuint32_t svmul_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u64_m)))
svuint64_t svmul_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u16_m)))
svuint16_t svmul_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s8_m)))
svint8_t svmul_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s32_m)))
svint32_t svmul_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s64_m)))
svint64_t svmul_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s16_m)))
svint16_t svmul_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u8_x)))
svuint8_t svmul_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u32_x)))
svuint32_t svmul_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u64_x)))
svuint64_t svmul_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u16_x)))
svuint16_t svmul_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s8_x)))
svint8_t svmul_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s32_x)))
svint32_t svmul_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s64_x)))
svint64_t svmul_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s16_x)))
svint16_t svmul_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u8_z)))
svuint8_t svmul_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u32_z)))
svuint32_t svmul_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u64_z)))
svuint64_t svmul_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u16_z)))
svuint16_t svmul_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s8_z)))
svint8_t svmul_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s32_z)))
svint32_t svmul_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s64_z)))
svint64_t svmul_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s16_z)))
svint16_t svmul_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_f64)))
svfloat64_t svmul_lane_f64(svfloat64_t, svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_f32)))
svfloat32_t svmul_lane_f32(svfloat32_t, svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_f16)))
svfloat16_t svmul_lane_f16(svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s8_m)))
svint8_t svmulh_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s32_m)))
svint32_t svmulh_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s64_m)))
svint64_t svmulh_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s16_m)))
svint16_t svmulh_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s8_x)))
svint8_t svmulh_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s32_x)))
svint32_t svmulh_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s64_x)))
svint64_t svmulh_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s16_x)))
svint16_t svmulh_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s8_z)))
svint8_t svmulh_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s32_z)))
svint32_t svmulh_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s64_z)))
svint64_t svmulh_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s16_z)))
svint16_t svmulh_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u8_m)))
svuint8_t svmulh_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u32_m)))
svuint32_t svmulh_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u64_m)))
svuint64_t svmulh_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u16_m)))
svuint16_t svmulh_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u8_x)))
svuint8_t svmulh_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u32_x)))
svuint32_t svmulh_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u64_x)))
svuint64_t svmulh_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u16_x)))
svuint16_t svmulh_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u8_z)))
svuint8_t svmulh_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u32_z)))
svuint32_t svmulh_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u64_z)))
svuint64_t svmulh_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u16_z)))
svuint16_t svmulh_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s8_m)))
svint8_t svmulh_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s32_m)))
svint32_t svmulh_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s64_m)))
svint64_t svmulh_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s16_m)))
svint16_t svmulh_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s8_x)))
svint8_t svmulh_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s32_x)))
svint32_t svmulh_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s64_x)))
svint64_t svmulh_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s16_x)))
svint16_t svmulh_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s8_z)))
svint8_t svmulh_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s32_z)))
svint32_t svmulh_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s64_z)))
svint64_t svmulh_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s16_z)))
svint16_t svmulh_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u8_m)))
svuint8_t svmulh_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u32_m)))
svuint32_t svmulh_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u64_m)))
svuint64_t svmulh_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u16_m)))
svuint16_t svmulh_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u8_x)))
svuint8_t svmulh_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u32_x)))
svuint32_t svmulh_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u64_x)))
svuint64_t svmulh_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u16_x)))
svuint16_t svmulh_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u8_z)))
svuint8_t svmulh_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u32_z)))
svuint32_t svmulh_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u64_z)))
svuint64_t svmulh_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u16_z)))
svuint16_t svmulh_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f64_m)))
svfloat64_t svmulx_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f32_m)))
svfloat32_t svmulx_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f16_m)))
svfloat16_t svmulx_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f64_x)))
svfloat64_t svmulx_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f32_x)))
svfloat32_t svmulx_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f16_x)))
svfloat16_t svmulx_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f64_z)))
svfloat64_t svmulx_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f32_z)))
svfloat32_t svmulx_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f16_z)))
svfloat16_t svmulx_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f64_m)))
svfloat64_t svmulx_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f32_m)))
svfloat32_t svmulx_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f16_m)))
svfloat16_t svmulx_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f64_x)))
svfloat64_t svmulx_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f32_x)))
svfloat32_t svmulx_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f16_x)))
svfloat16_t svmulx_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f64_z)))
svfloat64_t svmulx_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f32_z)))
svfloat32_t svmulx_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f16_z)))
svfloat16_t svmulx_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnand_b_z)))
svbool_t svnand_b_z(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f64_m)))
svfloat64_t svneg_f64_m(svfloat64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f32_m)))
svfloat32_t svneg_f32_m(svfloat32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f16_m)))
svfloat16_t svneg_f16_m(svfloat16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f64_x)))
svfloat64_t svneg_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f32_x)))
svfloat32_t svneg_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f16_x)))
svfloat16_t svneg_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f64_z)))
svfloat64_t svneg_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f32_z)))
svfloat32_t svneg_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f16_z)))
svfloat16_t svneg_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s8_m)))
svint8_t svneg_s8_m(svint8_t, svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s32_m)))
svint32_t svneg_s32_m(svint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s64_m)))
svint64_t svneg_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s16_m)))
svint16_t svneg_s16_m(svint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s8_x)))
svint8_t svneg_s8_x(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s32_x)))
svint32_t svneg_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s64_x)))
svint64_t svneg_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s16_x)))
svint16_t svneg_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s8_z)))
svint8_t svneg_s8_z(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s32_z)))
svint32_t svneg_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s64_z)))
svint64_t svneg_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s16_z)))
svint16_t svneg_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f64_m)))
svfloat64_t svnmad_n_f64_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f32_m)))
svfloat32_t svnmad_n_f32_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f16_m)))
svfloat16_t svnmad_n_f16_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f64_x)))
svfloat64_t svnmad_n_f64_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f32_x)))
svfloat32_t svnmad_n_f32_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f16_x)))
svfloat16_t svnmad_n_f16_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f64_z)))
svfloat64_t svnmad_n_f64_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f32_z)))
svfloat32_t svnmad_n_f32_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f16_z)))
svfloat16_t svnmad_n_f16_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f64_m)))
svfloat64_t svnmad_f64_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f32_m)))
svfloat32_t svnmad_f32_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f16_m)))
svfloat16_t svnmad_f16_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f64_x)))
svfloat64_t svnmad_f64_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f32_x)))
svfloat32_t svnmad_f32_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f16_x)))
svfloat16_t svnmad_f16_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f64_z)))
svfloat64_t svnmad_f64_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f32_z)))
svfloat32_t svnmad_f32_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f16_z)))
svfloat16_t svnmad_f16_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f64_m)))
svfloat64_t svnmla_n_f64_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f32_m)))
svfloat32_t svnmla_n_f32_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f16_m)))
svfloat16_t svnmla_n_f16_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f64_x)))
svfloat64_t svnmla_n_f64_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f32_x)))
svfloat32_t svnmla_n_f32_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f16_x)))
svfloat16_t svnmla_n_f16_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f64_z)))
svfloat64_t svnmla_n_f64_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f32_z)))
svfloat32_t svnmla_n_f32_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f16_z)))
svfloat16_t svnmla_n_f16_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f64_m)))
svfloat64_t svnmla_f64_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f32_m)))
svfloat32_t svnmla_f32_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f16_m)))
svfloat16_t svnmla_f16_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f64_x)))
svfloat64_t svnmla_f64_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f32_x)))
svfloat32_t svnmla_f32_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f16_x)))
svfloat16_t svnmla_f16_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f64_z)))
svfloat64_t svnmla_f64_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f32_z)))
svfloat32_t svnmla_f32_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f16_z)))
svfloat16_t svnmla_f16_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f64_m)))
svfloat64_t svnmls_n_f64_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f32_m)))
svfloat32_t svnmls_n_f32_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f16_m)))
svfloat16_t svnmls_n_f16_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f64_x)))
svfloat64_t svnmls_n_f64_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f32_x)))
svfloat32_t svnmls_n_f32_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f16_x)))
svfloat16_t svnmls_n_f16_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f64_z)))
svfloat64_t svnmls_n_f64_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f32_z)))
svfloat32_t svnmls_n_f32_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f16_z)))
svfloat16_t svnmls_n_f16_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f64_m)))
svfloat64_t svnmls_f64_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f32_m)))
svfloat32_t svnmls_f32_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f16_m)))
svfloat16_t svnmls_f16_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f64_x)))
svfloat64_t svnmls_f64_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f32_x)))
svfloat32_t svnmls_f32_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f16_x)))
svfloat16_t svnmls_f16_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f64_z)))
svfloat64_t svnmls_f64_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f32_z)))
svfloat32_t svnmls_f32_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f16_z)))
svfloat16_t svnmls_f16_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f64_m)))
svfloat64_t svnmsb_n_f64_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f32_m)))
svfloat32_t svnmsb_n_f32_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f16_m)))
svfloat16_t svnmsb_n_f16_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f64_x)))
svfloat64_t svnmsb_n_f64_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f32_x)))
svfloat32_t svnmsb_n_f32_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f16_x)))
svfloat16_t svnmsb_n_f16_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f64_z)))
svfloat64_t svnmsb_n_f64_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f32_z)))
svfloat32_t svnmsb_n_f32_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f16_z)))
svfloat16_t svnmsb_n_f16_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f64_m)))
svfloat64_t svnmsb_f64_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f32_m)))
svfloat32_t svnmsb_f32_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f16_m)))
svfloat16_t svnmsb_f16_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f64_x)))
svfloat64_t svnmsb_f64_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f32_x)))
svfloat32_t svnmsb_f32_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f16_x)))
svfloat16_t svnmsb_f16_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f64_z)))
svfloat64_t svnmsb_f64_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f32_z)))
svfloat32_t svnmsb_f32_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f16_z)))
svfloat16_t svnmsb_f16_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnor_b_z)))
svbool_t svnor_b_z(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_b_z)))
svbool_t svnot_b_z(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u8_m)))
svuint8_t svnot_u8_m(svuint8_t, svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u32_m)))
svuint32_t svnot_u32_m(svuint32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u64_m)))
svuint64_t svnot_u64_m(svuint64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u16_m)))
svuint16_t svnot_u16_m(svuint16_t, svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s8_m)))
svint8_t svnot_s8_m(svint8_t, svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s32_m)))
svint32_t svnot_s32_m(svint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s64_m)))
svint64_t svnot_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s16_m)))
svint16_t svnot_s16_m(svint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u8_x)))
svuint8_t svnot_u8_x(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u32_x)))
svuint32_t svnot_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u64_x)))
svuint64_t svnot_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u16_x)))
svuint16_t svnot_u16_x(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s8_x)))
svint8_t svnot_s8_x(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s32_x)))
svint32_t svnot_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s64_x)))
svint64_t svnot_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s16_x)))
svint16_t svnot_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u8_z)))
svuint8_t svnot_u8_z(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u32_z)))
svuint32_t svnot_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u64_z)))
svuint64_t svnot_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u16_z)))
svuint16_t svnot_u16_z(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s8_z)))
svint8_t svnot_s8_z(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s32_z)))
svint32_t svnot_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s64_z)))
svint64_t svnot_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s16_z)))
svint16_t svnot_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorn_b_z)))
svbool_t svorn_b_z(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_b_z)))
svbool_t svorr_b_z(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u8_m)))
svuint8_t svorr_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u32_m)))
svuint32_t svorr_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u64_m)))
svuint64_t svorr_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u16_m)))
svuint16_t svorr_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s8_m)))
svint8_t svorr_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s32_m)))
svint32_t svorr_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s64_m)))
svint64_t svorr_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s16_m)))
svint16_t svorr_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u8_x)))
svuint8_t svorr_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u32_x)))
svuint32_t svorr_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u64_x)))
svuint64_t svorr_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u16_x)))
svuint16_t svorr_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s8_x)))
svint8_t svorr_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s32_x)))
svint32_t svorr_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s64_x)))
svint64_t svorr_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s16_x)))
svint16_t svorr_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u8_z)))
svuint8_t svorr_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u32_z)))
svuint32_t svorr_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u64_z)))
svuint64_t svorr_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u16_z)))
svuint16_t svorr_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s8_z)))
svint8_t svorr_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s32_z)))
svint32_t svorr_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s64_z)))
svint64_t svorr_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s16_z)))
svint16_t svorr_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u8_m)))
svuint8_t svorr_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u32_m)))
svuint32_t svorr_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u64_m)))
svuint64_t svorr_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u16_m)))
svuint16_t svorr_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s8_m)))
svint8_t svorr_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s32_m)))
svint32_t svorr_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s64_m)))
svint64_t svorr_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s16_m)))
svint16_t svorr_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u8_x)))
svuint8_t svorr_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u32_x)))
svuint32_t svorr_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u64_x)))
svuint64_t svorr_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u16_x)))
svuint16_t svorr_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s8_x)))
svint8_t svorr_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s32_x)))
svint32_t svorr_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s64_x)))
svint64_t svorr_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s16_x)))
svint16_t svorr_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u8_z)))
svuint8_t svorr_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u32_z)))
svuint32_t svorr_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u64_z)))
svuint64_t svorr_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u16_z)))
svuint16_t svorr_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s8_z)))
svint8_t svorr_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s32_z)))
svint32_t svorr_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s64_z)))
svint64_t svorr_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s16_z)))
svint16_t svorr_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_u8)))
uint8_t svorv_u8(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_u32)))
uint32_t svorv_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_u64)))
uint64_t svorv_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_u16)))
uint16_t svorv_u16(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_s8)))
int8_t svorv_s8(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_s32)))
int32_t svorv_s32(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_s64)))
int64_t svorv_s64(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_s16)))
int16_t svorv_s16(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpfalse_b)))
svbool_t svpfalse_b();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpfirst_b)))
svbool_t svpfirst_b(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpnext_b8)))
svbool_t svpnext_b8(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpnext_b32)))
svbool_t svpnext_b32(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpnext_b64)))
svbool_t svpnext_b64(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpnext_b16)))
svbool_t svpnext_b16(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb)))
void svprfb(svbool_t, void const *, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u32base)))
void svprfb_gather_u32base(svbool_t, svuint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u64base)))
void svprfb_gather_u64base(svbool_t, svuint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u32base_offset)))
void svprfb_gather_u32base_offset(svbool_t, svuint32_t, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u64base_offset)))
void svprfb_gather_u64base_offset(svbool_t, svuint64_t, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_s32offset)))
void svprfb_gather_s32offset(svbool_t, void const *, svint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u32offset)))
void svprfb_gather_u32offset(svbool_t, void const *, svuint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_s64offset)))
void svprfb_gather_s64offset(svbool_t, void const *, svint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u64offset)))
void svprfb_gather_u64offset(svbool_t, void const *, svuint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_vnum)))
void svprfb_vnum(svbool_t, void const *, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd)))
void svprfd(svbool_t, void const *, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u32base)))
void svprfd_gather_u32base(svbool_t, svuint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u64base)))
void svprfd_gather_u64base(svbool_t, svuint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u32base_index)))
void svprfd_gather_u32base_index(svbool_t, svuint32_t, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u64base_index)))
void svprfd_gather_u64base_index(svbool_t, svuint64_t, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_s32index)))
void svprfd_gather_s32index(svbool_t, void const *, svint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u32index)))
void svprfd_gather_u32index(svbool_t, void const *, svuint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_s64index)))
void svprfd_gather_s64index(svbool_t, void const *, svint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u64index)))
void svprfd_gather_u64index(svbool_t, void const *, svuint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_vnum)))
void svprfd_vnum(svbool_t, void const *, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh)))
void svprfh(svbool_t, void const *, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u32base)))
void svprfh_gather_u32base(svbool_t, svuint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u64base)))
void svprfh_gather_u64base(svbool_t, svuint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u32base_index)))
void svprfh_gather_u32base_index(svbool_t, svuint32_t, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u64base_index)))
void svprfh_gather_u64base_index(svbool_t, svuint64_t, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_s32index)))
void svprfh_gather_s32index(svbool_t, void const *, svint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u32index)))
void svprfh_gather_u32index(svbool_t, void const *, svuint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_s64index)))
void svprfh_gather_s64index(svbool_t, void const *, svint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u64index)))
void svprfh_gather_u64index(svbool_t, void const *, svuint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_vnum)))
void svprfh_vnum(svbool_t, void const *, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw)))
void svprfw(svbool_t, void const *, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u32base)))
void svprfw_gather_u32base(svbool_t, svuint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u64base)))
void svprfw_gather_u64base(svbool_t, svuint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u32base_index)))
void svprfw_gather_u32base_index(svbool_t, svuint32_t, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u64base_index)))
void svprfw_gather_u64base_index(svbool_t, svuint64_t, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_s32index)))
void svprfw_gather_s32index(svbool_t, void const *, svint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u32index)))
void svprfw_gather_u32index(svbool_t, void const *, svuint32_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_s64index)))
void svprfw_gather_s64index(svbool_t, void const *, svint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u64index)))
void svprfw_gather_u64index(svbool_t, void const *, svuint64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_vnum)))
void svprfw_vnum(svbool_t, void const *, int64_t, enum svprfop);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svptest_any)))
bool svptest_any(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svptest_first)))
bool svptest_first(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svptest_last)))
bool svptest_last(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svptrue_pat_b8)))
svbool_t svptrue_pat_b8(enum svpattern);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svptrue_pat_b32)))
svbool_t svptrue_pat_b32(enum svpattern);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svptrue_pat_b64)))
svbool_t svptrue_pat_b64(enum svpattern);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svptrue_pat_b16)))
svbool_t svptrue_pat_b16(enum svpattern);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svptrue_b8)))
svbool_t svptrue_b8();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svptrue_b32)))
svbool_t svptrue_b32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svptrue_b64)))
svbool_t svptrue_b64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svptrue_b16)))
svbool_t svptrue_b16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s8)))
svint8_t svqadd_n_s8(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s32)))
svint32_t svqadd_n_s32(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s64)))
svint64_t svqadd_n_s64(svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s16)))
svint16_t svqadd_n_s16(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u8)))
svuint8_t svqadd_n_u8(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u32)))
svuint32_t svqadd_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u64)))
svuint64_t svqadd_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u16)))
svuint16_t svqadd_n_u16(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s8)))
svint8_t svqadd_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s32)))
svint32_t svqadd_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s64)))
svint64_t svqadd_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s16)))
svint16_t svqadd_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u8)))
svuint8_t svqadd_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u32)))
svuint32_t svqadd_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u64)))
svuint64_t svqadd_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u16)))
svuint16_t svqadd_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_n_s32)))
int32_t svqdecb_n_s32(int32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_n_s64)))
int64_t svqdecb_n_s64(int64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_n_u32)))
uint32_t svqdecb_n_u32(uint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_n_u64)))
uint64_t svqdecb_n_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_pat_n_s32)))
int32_t svqdecb_pat_n_s32(int32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_pat_n_s64)))
int64_t svqdecb_pat_n_s64(int64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_pat_n_u32)))
uint32_t svqdecb_pat_n_u32(uint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_pat_n_u64)))
uint64_t svqdecb_pat_n_u64(uint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_n_s32)))
int32_t svqdecd_n_s32(int32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_n_s64)))
int64_t svqdecd_n_s64(int64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_n_u32)))
uint32_t svqdecd_n_u32(uint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_n_u64)))
uint64_t svqdecd_n_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_s64)))
svint64_t svqdecd_s64(svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_u64)))
svuint64_t svqdecd_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_n_s32)))
int32_t svqdecd_pat_n_s32(int32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_n_s64)))
int64_t svqdecd_pat_n_s64(int64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_n_u32)))
uint32_t svqdecd_pat_n_u32(uint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_n_u64)))
uint64_t svqdecd_pat_n_u64(uint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_s64)))
svint64_t svqdecd_pat_s64(svint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_u64)))
svuint64_t svqdecd_pat_u64(svuint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_n_s32)))
int32_t svqdech_n_s32(int32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_n_s64)))
int64_t svqdech_n_s64(int64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_n_u32)))
uint32_t svqdech_n_u32(uint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_n_u64)))
uint64_t svqdech_n_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_s16)))
svint16_t svqdech_s16(svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_u16)))
svuint16_t svqdech_u16(svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_n_s32)))
int32_t svqdech_pat_n_s32(int32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_n_s64)))
int64_t svqdech_pat_n_s64(int64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_n_u32)))
uint32_t svqdech_pat_n_u32(uint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_n_u64)))
uint64_t svqdech_pat_n_u64(uint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_s16)))
svint16_t svqdech_pat_s16(svint16_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_u16)))
svuint16_t svqdech_pat_u16(svuint16_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s32_b8)))
int32_t svqdecp_n_s32_b8(int32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s32_b32)))
int32_t svqdecp_n_s32_b32(int32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s32_b64)))
int32_t svqdecp_n_s32_b64(int32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s32_b16)))
int32_t svqdecp_n_s32_b16(int32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s64_b8)))
int64_t svqdecp_n_s64_b8(int64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s64_b32)))
int64_t svqdecp_n_s64_b32(int64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s64_b64)))
int64_t svqdecp_n_s64_b64(int64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s64_b16)))
int64_t svqdecp_n_s64_b16(int64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u32_b8)))
uint32_t svqdecp_n_u32_b8(uint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u32_b32)))
uint32_t svqdecp_n_u32_b32(uint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u32_b64)))
uint32_t svqdecp_n_u32_b64(uint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u32_b16)))
uint32_t svqdecp_n_u32_b16(uint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u64_b8)))
uint64_t svqdecp_n_u64_b8(uint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u64_b32)))
uint64_t svqdecp_n_u64_b32(uint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u64_b64)))
uint64_t svqdecp_n_u64_b64(uint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u64_b16)))
uint64_t svqdecp_n_u64_b16(uint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_s32)))
svint32_t svqdecp_s32(svint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_s64)))
svint64_t svqdecp_s64(svint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_s16)))
svint16_t svqdecp_s16(svint16_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_u32)))
svuint32_t svqdecp_u32(svuint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_u64)))
svuint64_t svqdecp_u64(svuint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_u16)))
svuint16_t svqdecp_u16(svuint16_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_n_s32)))
int32_t svqdecw_n_s32(int32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_n_s64)))
int64_t svqdecw_n_s64(int64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_n_u32)))
uint32_t svqdecw_n_u32(uint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_n_u64)))
uint64_t svqdecw_n_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_s32)))
svint32_t svqdecw_s32(svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_u32)))
svuint32_t svqdecw_u32(svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_n_s32)))
int32_t svqdecw_pat_n_s32(int32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_n_s64)))
int64_t svqdecw_pat_n_s64(int64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_n_u32)))
uint32_t svqdecw_pat_n_u32(uint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_n_u64)))
uint64_t svqdecw_pat_n_u64(uint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_s32)))
svint32_t svqdecw_pat_s32(svint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_u32)))
svuint32_t svqdecw_pat_u32(svuint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_n_s32)))
int32_t svqincb_n_s32(int32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_n_s64)))
int64_t svqincb_n_s64(int64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_n_u32)))
uint32_t svqincb_n_u32(uint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_n_u64)))
uint64_t svqincb_n_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_pat_n_s32)))
int32_t svqincb_pat_n_s32(int32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_pat_n_s64)))
int64_t svqincb_pat_n_s64(int64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_pat_n_u32)))
uint32_t svqincb_pat_n_u32(uint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_pat_n_u64)))
uint64_t svqincb_pat_n_u64(uint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_n_s32)))
int32_t svqincd_n_s32(int32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_n_s64)))
int64_t svqincd_n_s64(int64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_n_u32)))
uint32_t svqincd_n_u32(uint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_n_u64)))
uint64_t svqincd_n_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_s64)))
svint64_t svqincd_s64(svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_u64)))
svuint64_t svqincd_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_n_s32)))
int32_t svqincd_pat_n_s32(int32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_n_s64)))
int64_t svqincd_pat_n_s64(int64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_n_u32)))
uint32_t svqincd_pat_n_u32(uint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_n_u64)))
uint64_t svqincd_pat_n_u64(uint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_s64)))
svint64_t svqincd_pat_s64(svint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_u64)))
svuint64_t svqincd_pat_u64(svuint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_n_s32)))
int32_t svqinch_n_s32(int32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_n_s64)))
int64_t svqinch_n_s64(int64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_n_u32)))
uint32_t svqinch_n_u32(uint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_n_u64)))
uint64_t svqinch_n_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_s16)))
svint16_t svqinch_s16(svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_u16)))
svuint16_t svqinch_u16(svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_n_s32)))
int32_t svqinch_pat_n_s32(int32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_n_s64)))
int64_t svqinch_pat_n_s64(int64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_n_u32)))
uint32_t svqinch_pat_n_u32(uint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_n_u64)))
uint64_t svqinch_pat_n_u64(uint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_s16)))
svint16_t svqinch_pat_s16(svint16_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_u16)))
svuint16_t svqinch_pat_u16(svuint16_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s32_b8)))
int32_t svqincp_n_s32_b8(int32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s32_b32)))
int32_t svqincp_n_s32_b32(int32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s32_b64)))
int32_t svqincp_n_s32_b64(int32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s32_b16)))
int32_t svqincp_n_s32_b16(int32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s64_b8)))
int64_t svqincp_n_s64_b8(int64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s64_b32)))
int64_t svqincp_n_s64_b32(int64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s64_b64)))
int64_t svqincp_n_s64_b64(int64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s64_b16)))
int64_t svqincp_n_s64_b16(int64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u32_b8)))
uint32_t svqincp_n_u32_b8(uint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u32_b32)))
uint32_t svqincp_n_u32_b32(uint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u32_b64)))
uint32_t svqincp_n_u32_b64(uint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u32_b16)))
uint32_t svqincp_n_u32_b16(uint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u64_b8)))
uint64_t svqincp_n_u64_b8(uint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u64_b32)))
uint64_t svqincp_n_u64_b32(uint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u64_b64)))
uint64_t svqincp_n_u64_b64(uint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u64_b16)))
uint64_t svqincp_n_u64_b16(uint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_s32)))
svint32_t svqincp_s32(svint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_s64)))
svint64_t svqincp_s64(svint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_s16)))
svint16_t svqincp_s16(svint16_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_u32)))
svuint32_t svqincp_u32(svuint32_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_u64)))
svuint64_t svqincp_u64(svuint64_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_u16)))
svuint16_t svqincp_u16(svuint16_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_n_s32)))
int32_t svqincw_n_s32(int32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_n_s64)))
int64_t svqincw_n_s64(int64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_n_u32)))
uint32_t svqincw_n_u32(uint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_n_u64)))
uint64_t svqincw_n_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_s32)))
svint32_t svqincw_s32(svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_u32)))
svuint32_t svqincw_u32(svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_n_s32)))
int32_t svqincw_pat_n_s32(int32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_n_s64)))
int64_t svqincw_pat_n_s64(int64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_n_u32)))
uint32_t svqincw_pat_n_u32(uint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_n_u64)))
uint64_t svqincw_pat_n_u64(uint64_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_s32)))
svint32_t svqincw_pat_s32(svint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_u32)))
svuint32_t svqincw_pat_u32(svuint32_t, enum svpattern, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s8)))
svint8_t svqsub_n_s8(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s32)))
svint32_t svqsub_n_s32(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s64)))
svint64_t svqsub_n_s64(svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s16)))
svint16_t svqsub_n_s16(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u8)))
svuint8_t svqsub_n_u8(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u32)))
svuint32_t svqsub_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u64)))
svuint64_t svqsub_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u16)))
svuint16_t svqsub_n_u16(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s8)))
svint8_t svqsub_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s32)))
svint32_t svqsub_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s64)))
svint64_t svqsub_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s16)))
svint16_t svqsub_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u8)))
svuint8_t svqsub_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u32)))
svuint32_t svqsub_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u64)))
svuint64_t svqsub_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u16)))
svuint16_t svqsub_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u8_m)))
svuint8_t svrbit_u8_m(svuint8_t, svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u32_m)))
svuint32_t svrbit_u32_m(svuint32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u64_m)))
svuint64_t svrbit_u64_m(svuint64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u16_m)))
svuint16_t svrbit_u16_m(svuint16_t, svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s8_m)))
svint8_t svrbit_s8_m(svint8_t, svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s32_m)))
svint32_t svrbit_s32_m(svint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s64_m)))
svint64_t svrbit_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s16_m)))
svint16_t svrbit_s16_m(svint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u8_x)))
svuint8_t svrbit_u8_x(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u32_x)))
svuint32_t svrbit_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u64_x)))
svuint64_t svrbit_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u16_x)))
svuint16_t svrbit_u16_x(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s8_x)))
svint8_t svrbit_s8_x(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s32_x)))
svint32_t svrbit_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s64_x)))
svint64_t svrbit_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s16_x)))
svint16_t svrbit_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u8_z)))
svuint8_t svrbit_u8_z(svbool_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u32_z)))
svuint32_t svrbit_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u64_z)))
svuint64_t svrbit_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u16_z)))
svuint16_t svrbit_u16_z(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s8_z)))
svint8_t svrbit_s8_z(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s32_z)))
svint32_t svrbit_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s64_z)))
svint64_t svrbit_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s16_z)))
svint16_t svrbit_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrdffr)))
svbool_t svrdffr();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrdffr_z)))
svbool_t svrdffr_z(svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_f64)))
svfloat64_t svrecpe_f64(svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_f32)))
svfloat32_t svrecpe_f32(svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_f16)))
svfloat16_t svrecpe_f16(svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecps_f64)))
svfloat64_t svrecps_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecps_f32)))
svfloat32_t svrecps_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecps_f16)))
svfloat16_t svrecps_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f64_m)))
svfloat64_t svrecpx_f64_m(svfloat64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f32_m)))
svfloat32_t svrecpx_f32_m(svfloat32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f16_m)))
svfloat16_t svrecpx_f16_m(svfloat16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f64_x)))
svfloat64_t svrecpx_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f32_x)))
svfloat32_t svrecpx_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f16_x)))
svfloat16_t svrecpx_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f64_z)))
svfloat64_t svrecpx_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f32_z)))
svfloat32_t svrecpx_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f16_z)))
svfloat16_t svrecpx_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_u8)))
svuint8_t svrev_u8(svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_u32)))
svuint32_t svrev_u32(svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_u64)))
svuint64_t svrev_u64(svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_u16)))
svuint16_t svrev_u16(svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_s8)))
svint8_t svrev_s8(svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_f64)))
svfloat64_t svrev_f64(svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_f32)))
svfloat32_t svrev_f32(svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_f16)))
svfloat16_t svrev_f16(svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_s32)))
svint32_t svrev_s32(svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_s64)))
svint64_t svrev_s64(svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_s16)))
svint16_t svrev_s16(svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_b8)))
svbool_t svrev_b8(svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_b32)))
svbool_t svrev_b32(svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_b64)))
svbool_t svrev_b64(svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_b16)))
svbool_t svrev_b16(svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u32_m)))
svuint32_t svrevb_u32_m(svuint32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u64_m)))
svuint64_t svrevb_u64_m(svuint64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u16_m)))
svuint16_t svrevb_u16_m(svuint16_t, svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s32_m)))
svint32_t svrevb_s32_m(svint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s64_m)))
svint64_t svrevb_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s16_m)))
svint16_t svrevb_s16_m(svint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u32_x)))
svuint32_t svrevb_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u64_x)))
svuint64_t svrevb_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u16_x)))
svuint16_t svrevb_u16_x(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s32_x)))
svint32_t svrevb_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s64_x)))
svint64_t svrevb_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s16_x)))
svint16_t svrevb_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u32_z)))
svuint32_t svrevb_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u64_z)))
svuint64_t svrevb_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u16_z)))
svuint16_t svrevb_u16_z(svbool_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s32_z)))
svint32_t svrevb_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s64_z)))
svint64_t svrevb_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s16_z)))
svint16_t svrevb_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u32_m)))
svuint32_t svrevh_u32_m(svuint32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u64_m)))
svuint64_t svrevh_u64_m(svuint64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s32_m)))
svint32_t svrevh_s32_m(svint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s64_m)))
svint64_t svrevh_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u32_x)))
svuint32_t svrevh_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u64_x)))
svuint64_t svrevh_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s32_x)))
svint32_t svrevh_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s64_x)))
svint64_t svrevh_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u32_z)))
svuint32_t svrevh_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u64_z)))
svuint64_t svrevh_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s32_z)))
svint32_t svrevh_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s64_z)))
svint64_t svrevh_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_u64_m)))
svuint64_t svrevw_u64_m(svuint64_t, svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_s64_m)))
svint64_t svrevw_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_u64_x)))
svuint64_t svrevw_u64_x(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_s64_x)))
svint64_t svrevw_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_u64_z)))
svuint64_t svrevw_u64_z(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_s64_z)))
svint64_t svrevw_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f64_m)))
svfloat64_t svrinta_f64_m(svfloat64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f32_m)))
svfloat32_t svrinta_f32_m(svfloat32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f16_m)))
svfloat16_t svrinta_f16_m(svfloat16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f64_x)))
svfloat64_t svrinta_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f32_x)))
svfloat32_t svrinta_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f16_x)))
svfloat16_t svrinta_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f64_z)))
svfloat64_t svrinta_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f32_z)))
svfloat32_t svrinta_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f16_z)))
svfloat16_t svrinta_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f64_m)))
svfloat64_t svrinti_f64_m(svfloat64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f32_m)))
svfloat32_t svrinti_f32_m(svfloat32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f16_m)))
svfloat16_t svrinti_f16_m(svfloat16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f64_x)))
svfloat64_t svrinti_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f32_x)))
svfloat32_t svrinti_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f16_x)))
svfloat16_t svrinti_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f64_z)))
svfloat64_t svrinti_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f32_z)))
svfloat32_t svrinti_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f16_z)))
svfloat16_t svrinti_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f64_m)))
svfloat64_t svrintm_f64_m(svfloat64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f32_m)))
svfloat32_t svrintm_f32_m(svfloat32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f16_m)))
svfloat16_t svrintm_f16_m(svfloat16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f64_x)))
svfloat64_t svrintm_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f32_x)))
svfloat32_t svrintm_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f16_x)))
svfloat16_t svrintm_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f64_z)))
svfloat64_t svrintm_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f32_z)))
svfloat32_t svrintm_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f16_z)))
svfloat16_t svrintm_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f64_m)))
svfloat64_t svrintn_f64_m(svfloat64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f32_m)))
svfloat32_t svrintn_f32_m(svfloat32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f16_m)))
svfloat16_t svrintn_f16_m(svfloat16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f64_x)))
svfloat64_t svrintn_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f32_x)))
svfloat32_t svrintn_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f16_x)))
svfloat16_t svrintn_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f64_z)))
svfloat64_t svrintn_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f32_z)))
svfloat32_t svrintn_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f16_z)))
svfloat16_t svrintn_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f64_m)))
svfloat64_t svrintp_f64_m(svfloat64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f32_m)))
svfloat32_t svrintp_f32_m(svfloat32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f16_m)))
svfloat16_t svrintp_f16_m(svfloat16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f64_x)))
svfloat64_t svrintp_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f32_x)))
svfloat32_t svrintp_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f16_x)))
svfloat16_t svrintp_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f64_z)))
svfloat64_t svrintp_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f32_z)))
svfloat32_t svrintp_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f16_z)))
svfloat16_t svrintp_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f64_m)))
svfloat64_t svrintx_f64_m(svfloat64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f32_m)))
svfloat32_t svrintx_f32_m(svfloat32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f16_m)))
svfloat16_t svrintx_f16_m(svfloat16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f64_x)))
svfloat64_t svrintx_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f32_x)))
svfloat32_t svrintx_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f16_x)))
svfloat16_t svrintx_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f64_z)))
svfloat64_t svrintx_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f32_z)))
svfloat32_t svrintx_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f16_z)))
svfloat16_t svrintx_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f64_m)))
svfloat64_t svrintz_f64_m(svfloat64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f32_m)))
svfloat32_t svrintz_f32_m(svfloat32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f16_m)))
svfloat16_t svrintz_f16_m(svfloat16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f64_x)))
svfloat64_t svrintz_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f32_x)))
svfloat32_t svrintz_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f16_x)))
svfloat16_t svrintz_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f64_z)))
svfloat64_t svrintz_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f32_z)))
svfloat32_t svrintz_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f16_z)))
svfloat16_t svrintz_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_f64)))
svfloat64_t svrsqrte_f64(svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_f32)))
svfloat32_t svrsqrte_f32(svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_f16)))
svfloat16_t svrsqrte_f16(svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrts_f64)))
svfloat64_t svrsqrts_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrts_f32)))
svfloat32_t svrsqrts_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrts_f16)))
svfloat16_t svrsqrts_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f64_m)))
svfloat64_t svscale_n_f64_m(svbool_t, svfloat64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f32_m)))
svfloat32_t svscale_n_f32_m(svbool_t, svfloat32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f16_m)))
svfloat16_t svscale_n_f16_m(svbool_t, svfloat16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f64_x)))
svfloat64_t svscale_n_f64_x(svbool_t, svfloat64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f32_x)))
svfloat32_t svscale_n_f32_x(svbool_t, svfloat32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f16_x)))
svfloat16_t svscale_n_f16_x(svbool_t, svfloat16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f64_z)))
svfloat64_t svscale_n_f64_z(svbool_t, svfloat64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f32_z)))
svfloat32_t svscale_n_f32_z(svbool_t, svfloat32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f16_z)))
svfloat16_t svscale_n_f16_z(svbool_t, svfloat16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f64_m)))
svfloat64_t svscale_f64_m(svbool_t, svfloat64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f32_m)))
svfloat32_t svscale_f32_m(svbool_t, svfloat32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f16_m)))
svfloat16_t svscale_f16_m(svbool_t, svfloat16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f64_x)))
svfloat64_t svscale_f64_x(svbool_t, svfloat64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f32_x)))
svfloat32_t svscale_f32_x(svbool_t, svfloat32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f16_x)))
svfloat16_t svscale_f16_x(svbool_t, svfloat16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f64_z)))
svfloat64_t svscale_f64_z(svbool_t, svfloat64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f32_z)))
svfloat32_t svscale_f32_z(svbool_t, svfloat32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f16_z)))
svfloat16_t svscale_f16_z(svbool_t, svfloat16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_b)))
svbool_t svsel_b(svbool_t, svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_u8)))
svuint8_t svsel_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_u32)))
svuint32_t svsel_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_u64)))
svuint64_t svsel_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_u16)))
svuint16_t svsel_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_s8)))
svint8_t svsel_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_f64)))
svfloat64_t svsel_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_f32)))
svfloat32_t svsel_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_f16)))
svfloat16_t svsel_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_s32)))
svint32_t svsel_s32(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_s64)))
svint64_t svsel_s64(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_s16)))
svint16_t svsel_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_u8)))
svuint8x2_t svset2_u8(svuint8x2_t, uint64_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_u32)))
svuint32x2_t svset2_u32(svuint32x2_t, uint64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_u64)))
svuint64x2_t svset2_u64(svuint64x2_t, uint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_u16)))
svuint16x2_t svset2_u16(svuint16x2_t, uint64_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_s8)))
svint8x2_t svset2_s8(svint8x2_t, uint64_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_f64)))
svfloat64x2_t svset2_f64(svfloat64x2_t, uint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_f32)))
svfloat32x2_t svset2_f32(svfloat32x2_t, uint64_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_f16)))
svfloat16x2_t svset2_f16(svfloat16x2_t, uint64_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_s32)))
svint32x2_t svset2_s32(svint32x2_t, uint64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_s64)))
svint64x2_t svset2_s64(svint64x2_t, uint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_s16)))
svint16x2_t svset2_s16(svint16x2_t, uint64_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_u8)))
svuint8x3_t svset3_u8(svuint8x3_t, uint64_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_u32)))
svuint32x3_t svset3_u32(svuint32x3_t, uint64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_u64)))
svuint64x3_t svset3_u64(svuint64x3_t, uint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_u16)))
svuint16x3_t svset3_u16(svuint16x3_t, uint64_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_s8)))
svint8x3_t svset3_s8(svint8x3_t, uint64_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_f64)))
svfloat64x3_t svset3_f64(svfloat64x3_t, uint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_f32)))
svfloat32x3_t svset3_f32(svfloat32x3_t, uint64_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_f16)))
svfloat16x3_t svset3_f16(svfloat16x3_t, uint64_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_s32)))
svint32x3_t svset3_s32(svint32x3_t, uint64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_s64)))
svint64x3_t svset3_s64(svint64x3_t, uint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_s16)))
svint16x3_t svset3_s16(svint16x3_t, uint64_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_u8)))
svuint8x4_t svset4_u8(svuint8x4_t, uint64_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_u32)))
svuint32x4_t svset4_u32(svuint32x4_t, uint64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_u64)))
svuint64x4_t svset4_u64(svuint64x4_t, uint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_u16)))
svuint16x4_t svset4_u16(svuint16x4_t, uint64_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_s8)))
svint8x4_t svset4_s8(svint8x4_t, uint64_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_f64)))
svfloat64x4_t svset4_f64(svfloat64x4_t, uint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_f32)))
svfloat32x4_t svset4_f32(svfloat32x4_t, uint64_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_f16)))
svfloat16x4_t svset4_f16(svfloat16x4_t, uint64_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_s32)))
svint32x4_t svset4_s32(svint32x4_t, uint64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_s64)))
svint64x4_t svset4_s64(svint64x4_t, uint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_s16)))
svint16x4_t svset4_s16(svint16x4_t, uint64_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsetffr)))
void svsetffr();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_u8)))
svuint8_t svsplice_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_u32)))
svuint32_t svsplice_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_u64)))
svuint64_t svsplice_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_u16)))
svuint16_t svsplice_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_s8)))
svint8_t svsplice_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_f64)))
svfloat64_t svsplice_f64(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_f32)))
svfloat32_t svsplice_f32(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_f16)))
svfloat16_t svsplice_f16(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_s32)))
svint32_t svsplice_s32(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_s64)))
svint64_t svsplice_s64(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_s16)))
svint16_t svsplice_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f64_m)))
svfloat64_t svsqrt_f64_m(svfloat64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f32_m)))
svfloat32_t svsqrt_f32_m(svfloat32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f16_m)))
svfloat16_t svsqrt_f16_m(svfloat16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f64_x)))
svfloat64_t svsqrt_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f32_x)))
svfloat32_t svsqrt_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f16_x)))
svfloat16_t svsqrt_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f64_z)))
svfloat64_t svsqrt_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f32_z)))
svfloat32_t svsqrt_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f16_z)))
svfloat16_t svsqrt_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_u8)))
void svst1_u8(svbool_t, uint8_t *, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_u32)))
void svst1_u32(svbool_t, uint32_t *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_u64)))
void svst1_u64(svbool_t, uint64_t *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_u16)))
void svst1_u16(svbool_t, uint16_t *, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_s8)))
void svst1_s8(svbool_t, int8_t *, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_f64)))
void svst1_f64(svbool_t, float64_t *, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_f32)))
void svst1_f32(svbool_t, float32_t *, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_f16)))
void svst1_f16(svbool_t, float16_t *, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_s32)))
void svst1_s32(svbool_t, int32_t *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_s64)))
void svst1_s64(svbool_t, int64_t *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_s16)))
void svst1_s16(svbool_t, int16_t *, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_index_u32)))
void svst1_scatter_u32base_index_u32(svbool_t, svuint32_t, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_index_u64)))
void svst1_scatter_u64base_index_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_index_f64)))
void svst1_scatter_u64base_index_f64(svbool_t, svuint64_t, int64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_index_f32)))
void svst1_scatter_u32base_index_f32(svbool_t, svuint32_t, int64_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_index_s32)))
void svst1_scatter_u32base_index_s32(svbool_t, svuint32_t, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_index_s64)))
void svst1_scatter_u64base_index_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_offset_u32)))
void svst1_scatter_u32base_offset_u32(svbool_t, svuint32_t, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_offset_u64)))
void svst1_scatter_u64base_offset_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_offset_f64)))
void svst1_scatter_u64base_offset_f64(svbool_t, svuint64_t, int64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_offset_f32)))
void svst1_scatter_u32base_offset_f32(svbool_t, svuint32_t, int64_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_offset_s32)))
void svst1_scatter_u32base_offset_s32(svbool_t, svuint32_t, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_offset_s64)))
void svst1_scatter_u64base_offset_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_u32)))
void svst1_scatter_u32base_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_u64)))
void svst1_scatter_u64base_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_f64)))
void svst1_scatter_u64base_f64(svbool_t, svuint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_f32)))
void svst1_scatter_u32base_f32(svbool_t, svuint32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_s32)))
void svst1_scatter_u32base_s32(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_s64)))
void svst1_scatter_u64base_s64(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32index_u32)))
void svst1_scatter_s32index_u32(svbool_t, uint32_t *, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32index_f32)))
void svst1_scatter_s32index_f32(svbool_t, float32_t *, svint32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32index_s32)))
void svst1_scatter_s32index_s32(svbool_t, int32_t *, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32index_u32)))
void svst1_scatter_u32index_u32(svbool_t, uint32_t *, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32index_f32)))
void svst1_scatter_u32index_f32(svbool_t, float32_t *, svuint32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32index_s32)))
void svst1_scatter_u32index_s32(svbool_t, int32_t *, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64index_u64)))
void svst1_scatter_s64index_u64(svbool_t, uint64_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64index_f64)))
void svst1_scatter_s64index_f64(svbool_t, float64_t *, svint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64index_s64)))
void svst1_scatter_s64index_s64(svbool_t, int64_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64index_u64)))
void svst1_scatter_u64index_u64(svbool_t, uint64_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64index_f64)))
void svst1_scatter_u64index_f64(svbool_t, float64_t *, svuint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64index_s64)))
void svst1_scatter_u64index_s64(svbool_t, int64_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32offset_u32)))
void svst1_scatter_s32offset_u32(svbool_t, uint32_t *, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32offset_f32)))
void svst1_scatter_s32offset_f32(svbool_t, float32_t *, svint32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32offset_s32)))
void svst1_scatter_s32offset_s32(svbool_t, int32_t *, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32offset_u32)))
void svst1_scatter_u32offset_u32(svbool_t, uint32_t *, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32offset_f32)))
void svst1_scatter_u32offset_f32(svbool_t, float32_t *, svuint32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32offset_s32)))
void svst1_scatter_u32offset_s32(svbool_t, int32_t *, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64offset_u64)))
void svst1_scatter_s64offset_u64(svbool_t, uint64_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64offset_f64)))
void svst1_scatter_s64offset_f64(svbool_t, float64_t *, svint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64offset_s64)))
void svst1_scatter_s64offset_s64(svbool_t, int64_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64offset_u64)))
void svst1_scatter_u64offset_u64(svbool_t, uint64_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64offset_f64)))
void svst1_scatter_u64offset_f64(svbool_t, float64_t *, svuint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64offset_s64)))
void svst1_scatter_u64offset_s64(svbool_t, int64_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_u8)))
void svst1_vnum_u8(svbool_t, uint8_t *, int64_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_u32)))
void svst1_vnum_u32(svbool_t, uint32_t *, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_u64)))
void svst1_vnum_u64(svbool_t, uint64_t *, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_u16)))
void svst1_vnum_u16(svbool_t, uint16_t *, int64_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_s8)))
void svst1_vnum_s8(svbool_t, int8_t *, int64_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_f64)))
void svst1_vnum_f64(svbool_t, float64_t *, int64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_f32)))
void svst1_vnum_f32(svbool_t, float32_t *, int64_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_f16)))
void svst1_vnum_f16(svbool_t, float16_t *, int64_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_s32)))
void svst1_vnum_s32(svbool_t, int32_t *, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_s64)))
void svst1_vnum_s64(svbool_t, int64_t *, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_s16)))
void svst1_vnum_s16(svbool_t, int16_t *, int64_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_s32)))
void svst1b_s32(svbool_t, int8_t *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_s64)))
void svst1b_s64(svbool_t, int8_t *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_s16)))
void svst1b_s16(svbool_t, int8_t *, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_u32)))
void svst1b_u32(svbool_t, uint8_t *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_u64)))
void svst1b_u64(svbool_t, uint8_t *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_u16)))
void svst1b_u16(svbool_t, uint8_t *, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32base_offset_u32)))
void svst1b_scatter_u32base_offset_u32(svbool_t, svuint32_t, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64base_offset_u64)))
void svst1b_scatter_u64base_offset_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32base_offset_s32)))
void svst1b_scatter_u32base_offset_s32(svbool_t, svuint32_t, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64base_offset_s64)))
void svst1b_scatter_u64base_offset_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32base_u32)))
void svst1b_scatter_u32base_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64base_u64)))
void svst1b_scatter_u64base_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32base_s32)))
void svst1b_scatter_u32base_s32(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64base_s64)))
void svst1b_scatter_u64base_s64(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_s32offset_s32)))
void svst1b_scatter_s32offset_s32(svbool_t, int8_t *, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_s32offset_u32)))
void svst1b_scatter_s32offset_u32(svbool_t, uint8_t *, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32offset_s32)))
void svst1b_scatter_u32offset_s32(svbool_t, int8_t *, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32offset_u32)))
void svst1b_scatter_u32offset_u32(svbool_t, uint8_t *, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_s64offset_s64)))
void svst1b_scatter_s64offset_s64(svbool_t, int8_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_s64offset_u64)))
void svst1b_scatter_s64offset_u64(svbool_t, uint8_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64offset_s64)))
void svst1b_scatter_u64offset_s64(svbool_t, int8_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64offset_u64)))
void svst1b_scatter_u64offset_u64(svbool_t, uint8_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_s32)))
void svst1b_vnum_s32(svbool_t, int8_t *, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_s64)))
void svst1b_vnum_s64(svbool_t, int8_t *, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_s16)))
void svst1b_vnum_s16(svbool_t, int8_t *, int64_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_u32)))
void svst1b_vnum_u32(svbool_t, uint8_t *, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_u64)))
void svst1b_vnum_u64(svbool_t, uint8_t *, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_u16)))
void svst1b_vnum_u16(svbool_t, uint8_t *, int64_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_s32)))
void svst1h_s32(svbool_t, int16_t *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_s64)))
void svst1h_s64(svbool_t, int16_t *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_u32)))
void svst1h_u32(svbool_t, uint16_t *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_u64)))
void svst1h_u64(svbool_t, uint16_t *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_index_u32)))
void svst1h_scatter_u32base_index_u32(svbool_t, svuint32_t, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_index_u64)))
void svst1h_scatter_u64base_index_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_index_s32)))
void svst1h_scatter_u32base_index_s32(svbool_t, svuint32_t, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_index_s64)))
void svst1h_scatter_u64base_index_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_offset_u32)))
void svst1h_scatter_u32base_offset_u32(svbool_t, svuint32_t, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_offset_u64)))
void svst1h_scatter_u64base_offset_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_offset_s32)))
void svst1h_scatter_u32base_offset_s32(svbool_t, svuint32_t, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_offset_s64)))
void svst1h_scatter_u64base_offset_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_u32)))
void svst1h_scatter_u32base_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_u64)))
void svst1h_scatter_u64base_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_s32)))
void svst1h_scatter_u32base_s32(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_s64)))
void svst1h_scatter_u64base_s64(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s32index_s32)))
void svst1h_scatter_s32index_s32(svbool_t, int16_t *, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s32index_u32)))
void svst1h_scatter_s32index_u32(svbool_t, uint16_t *, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32index_s32)))
void svst1h_scatter_u32index_s32(svbool_t, int16_t *, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32index_u32)))
void svst1h_scatter_u32index_u32(svbool_t, uint16_t *, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s64index_s64)))
void svst1h_scatter_s64index_s64(svbool_t, int16_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s64index_u64)))
void svst1h_scatter_s64index_u64(svbool_t, uint16_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64index_s64)))
void svst1h_scatter_u64index_s64(svbool_t, int16_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64index_u64)))
void svst1h_scatter_u64index_u64(svbool_t, uint16_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s32offset_s32)))
void svst1h_scatter_s32offset_s32(svbool_t, int16_t *, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s32offset_u32)))
void svst1h_scatter_s32offset_u32(svbool_t, uint16_t *, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32offset_s32)))
void svst1h_scatter_u32offset_s32(svbool_t, int16_t *, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32offset_u32)))
void svst1h_scatter_u32offset_u32(svbool_t, uint16_t *, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s64offset_s64)))
void svst1h_scatter_s64offset_s64(svbool_t, int16_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s64offset_u64)))
void svst1h_scatter_s64offset_u64(svbool_t, uint16_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64offset_s64)))
void svst1h_scatter_u64offset_s64(svbool_t, int16_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64offset_u64)))
void svst1h_scatter_u64offset_u64(svbool_t, uint16_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_vnum_s32)))
void svst1h_vnum_s32(svbool_t, int16_t *, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_vnum_s64)))
void svst1h_vnum_s64(svbool_t, int16_t *, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_vnum_u32)))
void svst1h_vnum_u32(svbool_t, uint16_t *, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_vnum_u64)))
void svst1h_vnum_u64(svbool_t, uint16_t *, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_s64)))
void svst1w_s64(svbool_t, int32_t *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_u64)))
void svst1w_u64(svbool_t, uint32_t *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_index_u64)))
void svst1w_scatter_u64base_index_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_index_s64)))
void svst1w_scatter_u64base_index_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_offset_u64)))
void svst1w_scatter_u64base_offset_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_offset_s64)))
void svst1w_scatter_u64base_offset_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_u64)))
void svst1w_scatter_u64base_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_s64)))
void svst1w_scatter_u64base_s64(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_s64index_s64)))
void svst1w_scatter_s64index_s64(svbool_t, int32_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_s64index_u64)))
void svst1w_scatter_s64index_u64(svbool_t, uint32_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64index_s64)))
void svst1w_scatter_u64index_s64(svbool_t, int32_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64index_u64)))
void svst1w_scatter_u64index_u64(svbool_t, uint32_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_s64offset_s64)))
void svst1w_scatter_s64offset_s64(svbool_t, int32_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_s64offset_u64)))
void svst1w_scatter_s64offset_u64(svbool_t, uint32_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64offset_s64)))
void svst1w_scatter_u64offset_s64(svbool_t, int32_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64offset_u64)))
void svst1w_scatter_u64offset_u64(svbool_t, uint32_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_vnum_s64)))
void svst1w_vnum_s64(svbool_t, int32_t *, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_vnum_u64)))
void svst1w_vnum_u64(svbool_t, uint32_t *, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_u8)))
void svst2_u8(svbool_t, uint8_t *, svuint8x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_u32)))
void svst2_u32(svbool_t, uint32_t *, svuint32x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_u64)))
void svst2_u64(svbool_t, uint64_t *, svuint64x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_u16)))
void svst2_u16(svbool_t, uint16_t *, svuint16x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_s8)))
void svst2_s8(svbool_t, int8_t *, svint8x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_f64)))
void svst2_f64(svbool_t, float64_t *, svfloat64x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_f32)))
void svst2_f32(svbool_t, float32_t *, svfloat32x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_f16)))
void svst2_f16(svbool_t, float16_t *, svfloat16x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_s32)))
void svst2_s32(svbool_t, int32_t *, svint32x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_s64)))
void svst2_s64(svbool_t, int64_t *, svint64x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_s16)))
void svst2_s16(svbool_t, int16_t *, svint16x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_u8)))
void svst2_vnum_u8(svbool_t, uint8_t *, int64_t, svuint8x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_u32)))
void svst2_vnum_u32(svbool_t, uint32_t *, int64_t, svuint32x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_u64)))
void svst2_vnum_u64(svbool_t, uint64_t *, int64_t, svuint64x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_u16)))
void svst2_vnum_u16(svbool_t, uint16_t *, int64_t, svuint16x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_s8)))
void svst2_vnum_s8(svbool_t, int8_t *, int64_t, svint8x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_f64)))
void svst2_vnum_f64(svbool_t, float64_t *, int64_t, svfloat64x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_f32)))
void svst2_vnum_f32(svbool_t, float32_t *, int64_t, svfloat32x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_f16)))
void svst2_vnum_f16(svbool_t, float16_t *, int64_t, svfloat16x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_s32)))
void svst2_vnum_s32(svbool_t, int32_t *, int64_t, svint32x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_s64)))
void svst2_vnum_s64(svbool_t, int64_t *, int64_t, svint64x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_s16)))
void svst2_vnum_s16(svbool_t, int16_t *, int64_t, svint16x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_u8)))
void svst3_u8(svbool_t, uint8_t *, svuint8x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_u32)))
void svst3_u32(svbool_t, uint32_t *, svuint32x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_u64)))
void svst3_u64(svbool_t, uint64_t *, svuint64x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_u16)))
void svst3_u16(svbool_t, uint16_t *, svuint16x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_s8)))
void svst3_s8(svbool_t, int8_t *, svint8x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_f64)))
void svst3_f64(svbool_t, float64_t *, svfloat64x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_f32)))
void svst3_f32(svbool_t, float32_t *, svfloat32x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_f16)))
void svst3_f16(svbool_t, float16_t *, svfloat16x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_s32)))
void svst3_s32(svbool_t, int32_t *, svint32x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_s64)))
void svst3_s64(svbool_t, int64_t *, svint64x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_s16)))
void svst3_s16(svbool_t, int16_t *, svint16x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_u8)))
void svst3_vnum_u8(svbool_t, uint8_t *, int64_t, svuint8x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_u32)))
void svst3_vnum_u32(svbool_t, uint32_t *, int64_t, svuint32x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_u64)))
void svst3_vnum_u64(svbool_t, uint64_t *, int64_t, svuint64x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_u16)))
void svst3_vnum_u16(svbool_t, uint16_t *, int64_t, svuint16x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_s8)))
void svst3_vnum_s8(svbool_t, int8_t *, int64_t, svint8x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_f64)))
void svst3_vnum_f64(svbool_t, float64_t *, int64_t, svfloat64x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_f32)))
void svst3_vnum_f32(svbool_t, float32_t *, int64_t, svfloat32x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_f16)))
void svst3_vnum_f16(svbool_t, float16_t *, int64_t, svfloat16x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_s32)))
void svst3_vnum_s32(svbool_t, int32_t *, int64_t, svint32x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_s64)))
void svst3_vnum_s64(svbool_t, int64_t *, int64_t, svint64x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_s16)))
void svst3_vnum_s16(svbool_t, int16_t *, int64_t, svint16x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_u8)))
void svst4_u8(svbool_t, uint8_t *, svuint8x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_u32)))
void svst4_u32(svbool_t, uint32_t *, svuint32x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_u64)))
void svst4_u64(svbool_t, uint64_t *, svuint64x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_u16)))
void svst4_u16(svbool_t, uint16_t *, svuint16x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_s8)))
void svst4_s8(svbool_t, int8_t *, svint8x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_f64)))
void svst4_f64(svbool_t, float64_t *, svfloat64x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_f32)))
void svst4_f32(svbool_t, float32_t *, svfloat32x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_f16)))
void svst4_f16(svbool_t, float16_t *, svfloat16x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_s32)))
void svst4_s32(svbool_t, int32_t *, svint32x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_s64)))
void svst4_s64(svbool_t, int64_t *, svint64x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_s16)))
void svst4_s16(svbool_t, int16_t *, svint16x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_u8)))
void svst4_vnum_u8(svbool_t, uint8_t *, int64_t, svuint8x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_u32)))
void svst4_vnum_u32(svbool_t, uint32_t *, int64_t, svuint32x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_u64)))
void svst4_vnum_u64(svbool_t, uint64_t *, int64_t, svuint64x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_u16)))
void svst4_vnum_u16(svbool_t, uint16_t *, int64_t, svuint16x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_s8)))
void svst4_vnum_s8(svbool_t, int8_t *, int64_t, svint8x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_f64)))
void svst4_vnum_f64(svbool_t, float64_t *, int64_t, svfloat64x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_f32)))
void svst4_vnum_f32(svbool_t, float32_t *, int64_t, svfloat32x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_f16)))
void svst4_vnum_f16(svbool_t, float16_t *, int64_t, svfloat16x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_s32)))
void svst4_vnum_s32(svbool_t, int32_t *, int64_t, svint32x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_s64)))
void svst4_vnum_s64(svbool_t, int64_t *, int64_t, svint64x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_s16)))
void svst4_vnum_s16(svbool_t, int16_t *, int64_t, svint16x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_u8)))
void svstnt1_u8(svbool_t, uint8_t *, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_u32)))
void svstnt1_u32(svbool_t, uint32_t *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_u64)))
void svstnt1_u64(svbool_t, uint64_t *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_u16)))
void svstnt1_u16(svbool_t, uint16_t *, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_s8)))
void svstnt1_s8(svbool_t, int8_t *, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_f64)))
void svstnt1_f64(svbool_t, float64_t *, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_f32)))
void svstnt1_f32(svbool_t, float32_t *, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_f16)))
void svstnt1_f16(svbool_t, float16_t *, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_s32)))
void svstnt1_s32(svbool_t, int32_t *, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_s64)))
void svstnt1_s64(svbool_t, int64_t *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_s16)))
void svstnt1_s16(svbool_t, int16_t *, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_u8)))
void svstnt1_vnum_u8(svbool_t, uint8_t *, int64_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_u32)))
void svstnt1_vnum_u32(svbool_t, uint32_t *, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_u64)))
void svstnt1_vnum_u64(svbool_t, uint64_t *, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_u16)))
void svstnt1_vnum_u16(svbool_t, uint16_t *, int64_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_s8)))
void svstnt1_vnum_s8(svbool_t, int8_t *, int64_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_f64)))
void svstnt1_vnum_f64(svbool_t, float64_t *, int64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_f32)))
void svstnt1_vnum_f32(svbool_t, float32_t *, int64_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_f16)))
void svstnt1_vnum_f16(svbool_t, float16_t *, int64_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_s32)))
void svstnt1_vnum_s32(svbool_t, int32_t *, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_s64)))
void svstnt1_vnum_s64(svbool_t, int64_t *, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_s16)))
void svstnt1_vnum_s16(svbool_t, int16_t *, int64_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f64_m)))
svfloat64_t svsub_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f32_m)))
svfloat32_t svsub_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f16_m)))
svfloat16_t svsub_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f64_x)))
svfloat64_t svsub_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f32_x)))
svfloat32_t svsub_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f16_x)))
svfloat16_t svsub_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f64_z)))
svfloat64_t svsub_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f32_z)))
svfloat32_t svsub_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f16_z)))
svfloat16_t svsub_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u8_m)))
svuint8_t svsub_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u32_m)))
svuint32_t svsub_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u64_m)))
svuint64_t svsub_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u16_m)))
svuint16_t svsub_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s8_m)))
svint8_t svsub_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s32_m)))
svint32_t svsub_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s64_m)))
svint64_t svsub_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s16_m)))
svint16_t svsub_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u8_x)))
svuint8_t svsub_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u32_x)))
svuint32_t svsub_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u64_x)))
svuint64_t svsub_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u16_x)))
svuint16_t svsub_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s8_x)))
svint8_t svsub_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s32_x)))
svint32_t svsub_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s64_x)))
svint64_t svsub_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s16_x)))
svint16_t svsub_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u8_z)))
svuint8_t svsub_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u32_z)))
svuint32_t svsub_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u64_z)))
svuint64_t svsub_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u16_z)))
svuint16_t svsub_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s8_z)))
svint8_t svsub_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s32_z)))
svint32_t svsub_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s64_z)))
svint64_t svsub_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s16_z)))
svint16_t svsub_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f64_m)))
svfloat64_t svsub_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f32_m)))
svfloat32_t svsub_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f16_m)))
svfloat16_t svsub_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f64_x)))
svfloat64_t svsub_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f32_x)))
svfloat32_t svsub_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f16_x)))
svfloat16_t svsub_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f64_z)))
svfloat64_t svsub_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f32_z)))
svfloat32_t svsub_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f16_z)))
svfloat16_t svsub_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u8_m)))
svuint8_t svsub_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u32_m)))
svuint32_t svsub_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u64_m)))
svuint64_t svsub_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u16_m)))
svuint16_t svsub_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s8_m)))
svint8_t svsub_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s32_m)))
svint32_t svsub_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s64_m)))
svint64_t svsub_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s16_m)))
svint16_t svsub_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u8_x)))
svuint8_t svsub_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u32_x)))
svuint32_t svsub_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u64_x)))
svuint64_t svsub_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u16_x)))
svuint16_t svsub_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s8_x)))
svint8_t svsub_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s32_x)))
svint32_t svsub_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s64_x)))
svint64_t svsub_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s16_x)))
svint16_t svsub_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u8_z)))
svuint8_t svsub_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u32_z)))
svuint32_t svsub_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u64_z)))
svuint64_t svsub_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u16_z)))
svuint16_t svsub_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s8_z)))
svint8_t svsub_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s32_z)))
svint32_t svsub_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s64_z)))
svint64_t svsub_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s16_z)))
svint16_t svsub_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f64_m)))
svfloat64_t svsubr_n_f64_m(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f32_m)))
svfloat32_t svsubr_n_f32_m(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f16_m)))
svfloat16_t svsubr_n_f16_m(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f64_x)))
svfloat64_t svsubr_n_f64_x(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f32_x)))
svfloat32_t svsubr_n_f32_x(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f16_x)))
svfloat16_t svsubr_n_f16_x(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f64_z)))
svfloat64_t svsubr_n_f64_z(svbool_t, svfloat64_t, float64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f32_z)))
svfloat32_t svsubr_n_f32_z(svbool_t, svfloat32_t, float32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f16_z)))
svfloat16_t svsubr_n_f16_z(svbool_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u8_m)))
svuint8_t svsubr_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u32_m)))
svuint32_t svsubr_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u64_m)))
svuint64_t svsubr_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u16_m)))
svuint16_t svsubr_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s8_m)))
svint8_t svsubr_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s32_m)))
svint32_t svsubr_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s64_m)))
svint64_t svsubr_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s16_m)))
svint16_t svsubr_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u8_x)))
svuint8_t svsubr_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u32_x)))
svuint32_t svsubr_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u64_x)))
svuint64_t svsubr_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u16_x)))
svuint16_t svsubr_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s8_x)))
svint8_t svsubr_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s32_x)))
svint32_t svsubr_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s64_x)))
svint64_t svsubr_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s16_x)))
svint16_t svsubr_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u8_z)))
svuint8_t svsubr_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u32_z)))
svuint32_t svsubr_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u64_z)))
svuint64_t svsubr_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u16_z)))
svuint16_t svsubr_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s8_z)))
svint8_t svsubr_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s32_z)))
svint32_t svsubr_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s64_z)))
svint64_t svsubr_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s16_z)))
svint16_t svsubr_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f64_m)))
svfloat64_t svsubr_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f32_m)))
svfloat32_t svsubr_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f16_m)))
svfloat16_t svsubr_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f64_x)))
svfloat64_t svsubr_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f32_x)))
svfloat32_t svsubr_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f16_x)))
svfloat16_t svsubr_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f64_z)))
svfloat64_t svsubr_f64_z(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f32_z)))
svfloat32_t svsubr_f32_z(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f16_z)))
svfloat16_t svsubr_f16_z(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u8_m)))
svuint8_t svsubr_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u32_m)))
svuint32_t svsubr_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u64_m)))
svuint64_t svsubr_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u16_m)))
svuint16_t svsubr_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s8_m)))
svint8_t svsubr_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s32_m)))
svint32_t svsubr_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s64_m)))
svint64_t svsubr_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s16_m)))
svint16_t svsubr_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u8_x)))
svuint8_t svsubr_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u32_x)))
svuint32_t svsubr_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u64_x)))
svuint64_t svsubr_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u16_x)))
svuint16_t svsubr_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s8_x)))
svint8_t svsubr_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s32_x)))
svint32_t svsubr_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s64_x)))
svint64_t svsubr_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s16_x)))
svint16_t svsubr_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u8_z)))
svuint8_t svsubr_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u32_z)))
svuint32_t svsubr_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u64_z)))
svuint64_t svsubr_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u16_z)))
svuint16_t svsubr_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s8_z)))
svint8_t svsubr_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s32_z)))
svint32_t svsubr_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s64_z)))
svint64_t svsubr_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s16_z)))
svint16_t svsubr_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_u8)))
svuint8_t svtbl_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_u32)))
svuint32_t svtbl_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_u64)))
svuint64_t svtbl_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_u16)))
svuint16_t svtbl_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_s8)))
svint8_t svtbl_s8(svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_f64)))
svfloat64_t svtbl_f64(svfloat64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_f32)))
svfloat32_t svtbl_f32(svfloat32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_f16)))
svfloat16_t svtbl_f16(svfloat16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_s32)))
svint32_t svtbl_s32(svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_s64)))
svint64_t svtbl_s64(svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_s16)))
svint16_t svtbl_s16(svint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtmad_f64)))
svfloat64_t svtmad_f64(svfloat64_t, svfloat64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtmad_f32)))
svfloat32_t svtmad_f32(svfloat32_t, svfloat32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtmad_f16)))
svfloat16_t svtmad_f16(svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_u8)))
svuint8_t svtrn1_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_u32)))
svuint32_t svtrn1_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_u64)))
svuint64_t svtrn1_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_u16)))
svuint16_t svtrn1_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_s8)))
svint8_t svtrn1_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_f64)))
svfloat64_t svtrn1_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_f32)))
svfloat32_t svtrn1_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_f16)))
svfloat16_t svtrn1_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_s32)))
svint32_t svtrn1_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_s64)))
svint64_t svtrn1_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_s16)))
svint16_t svtrn1_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_b8)))
svbool_t svtrn1_b8(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_b32)))
svbool_t svtrn1_b32(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_b64)))
svbool_t svtrn1_b64(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_b16)))
svbool_t svtrn1_b16(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_u8)))
svuint8_t svtrn2_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_u32)))
svuint32_t svtrn2_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_u64)))
svuint64_t svtrn2_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_u16)))
svuint16_t svtrn2_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_s8)))
svint8_t svtrn2_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_f64)))
svfloat64_t svtrn2_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_f32)))
svfloat32_t svtrn2_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_f16)))
svfloat16_t svtrn2_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_s32)))
svint32_t svtrn2_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_s64)))
svint64_t svtrn2_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_s16)))
svint16_t svtrn2_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_b8)))
svbool_t svtrn2_b8(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_b32)))
svbool_t svtrn2_b32(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_b64)))
svbool_t svtrn2_b64(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_b16)))
svbool_t svtrn2_b16(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtsmul_f64)))
svfloat64_t svtsmul_f64(svfloat64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtsmul_f32)))
svfloat32_t svtsmul_f32(svfloat32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtsmul_f16)))
svfloat16_t svtsmul_f16(svfloat16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtssel_f64)))
svfloat64_t svtssel_f64(svfloat64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtssel_f32)))
svfloat32_t svtssel_f32(svfloat32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtssel_f16)))
svfloat16_t svtssel_f16(svfloat16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_u8)))
svuint8x2_t svundef2_u8();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_u32)))
svuint32x2_t svundef2_u32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_u64)))
svuint64x2_t svundef2_u64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_u16)))
svuint16x2_t svundef2_u16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_s8)))
svint8x2_t svundef2_s8();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_f64)))
svfloat64x2_t svundef2_f64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_f32)))
svfloat32x2_t svundef2_f32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_f16)))
svfloat16x2_t svundef2_f16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_s32)))
svint32x2_t svundef2_s32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_s64)))
svint64x2_t svundef2_s64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_s16)))
svint16x2_t svundef2_s16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_u8)))
svuint8x3_t svundef3_u8();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_u32)))
svuint32x3_t svundef3_u32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_u64)))
svuint64x3_t svundef3_u64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_u16)))
svuint16x3_t svundef3_u16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_s8)))
svint8x3_t svundef3_s8();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_f64)))
svfloat64x3_t svundef3_f64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_f32)))
svfloat32x3_t svundef3_f32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_f16)))
svfloat16x3_t svundef3_f16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_s32)))
svint32x3_t svundef3_s32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_s64)))
svint64x3_t svundef3_s64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_s16)))
svint16x3_t svundef3_s16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_u8)))
svuint8x4_t svundef4_u8();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_u32)))
svuint32x4_t svundef4_u32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_u64)))
svuint64x4_t svundef4_u64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_u16)))
svuint16x4_t svundef4_u16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_s8)))
svint8x4_t svundef4_s8();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_f64)))
svfloat64x4_t svundef4_f64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_f32)))
svfloat32x4_t svundef4_f32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_f16)))
svfloat16x4_t svundef4_f16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_s32)))
svint32x4_t svundef4_s32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_s64)))
svint64x4_t svundef4_s64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_s16)))
svint16x4_t svundef4_s16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_u8)))
svuint8_t svundef_u8();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_u32)))
svuint32_t svundef_u32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_u64)))
svuint64_t svundef_u64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_u16)))
svuint16_t svundef_u16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_s8)))
svint8_t svundef_s8();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_f64)))
svfloat64_t svundef_f64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_f32)))
svfloat32_t svundef_f32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_f16)))
svfloat16_t svundef_f16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_s32)))
svint32_t svundef_s32();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_s64)))
svint64_t svundef_s64();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_s16)))
svint16_t svundef_s16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_b)))
svbool_t svunpkhi_b(svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_s32)))
svint32_t svunpkhi_s32(svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_s64)))
svint64_t svunpkhi_s64(svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_s16)))
svint16_t svunpkhi_s16(svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_u32)))
svuint32_t svunpkhi_u32(svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_u64)))
svuint64_t svunpkhi_u64(svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_u16)))
svuint16_t svunpkhi_u16(svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_b)))
svbool_t svunpklo_b(svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_s32)))
svint32_t svunpklo_s32(svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_s64)))
svint64_t svunpklo_s64(svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_s16)))
svint16_t svunpklo_s16(svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_u32)))
svuint32_t svunpklo_u32(svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_u64)))
svuint64_t svunpklo_u64(svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_u16)))
svuint16_t svunpklo_u16(svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_u8)))
svuint8_t svuzp1_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_u32)))
svuint32_t svuzp1_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_u64)))
svuint64_t svuzp1_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_u16)))
svuint16_t svuzp1_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_s8)))
svint8_t svuzp1_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_f64)))
svfloat64_t svuzp1_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_f32)))
svfloat32_t svuzp1_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_f16)))
svfloat16_t svuzp1_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_s32)))
svint32_t svuzp1_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_s64)))
svint64_t svuzp1_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_s16)))
svint16_t svuzp1_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_b8)))
svbool_t svuzp1_b8(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_b32)))
svbool_t svuzp1_b32(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_b64)))
svbool_t svuzp1_b64(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_b16)))
svbool_t svuzp1_b16(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_u8)))
svuint8_t svuzp2_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_u32)))
svuint32_t svuzp2_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_u64)))
svuint64_t svuzp2_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_u16)))
svuint16_t svuzp2_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_s8)))
svint8_t svuzp2_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_f64)))
svfloat64_t svuzp2_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_f32)))
svfloat32_t svuzp2_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_f16)))
svfloat16_t svuzp2_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_s32)))
svint32_t svuzp2_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_s64)))
svint64_t svuzp2_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_s16)))
svint16_t svuzp2_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_b8)))
svbool_t svuzp2_b8(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_b32)))
svbool_t svuzp2_b32(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_b64)))
svbool_t svuzp2_b64(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_b16)))
svbool_t svuzp2_b16(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b8_s32)))
svbool_t svwhilele_b8_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b32_s32)))
svbool_t svwhilele_b32_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b64_s32)))
svbool_t svwhilele_b64_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b16_s32)))
svbool_t svwhilele_b16_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b8_s64)))
svbool_t svwhilele_b8_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b32_s64)))
svbool_t svwhilele_b32_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b64_s64)))
svbool_t svwhilele_b64_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b16_s64)))
svbool_t svwhilele_b16_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b8_u32)))
svbool_t svwhilele_b8_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b32_u32)))
svbool_t svwhilele_b32_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b64_u32)))
svbool_t svwhilele_b64_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b16_u32)))
svbool_t svwhilele_b16_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b8_u64)))
svbool_t svwhilele_b8_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b32_u64)))
svbool_t svwhilele_b32_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b64_u64)))
svbool_t svwhilele_b64_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b16_u64)))
svbool_t svwhilele_b16_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b8_u32)))
svbool_t svwhilelt_b8_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b32_u32)))
svbool_t svwhilelt_b32_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b64_u32)))
svbool_t svwhilelt_b64_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b16_u32)))
svbool_t svwhilelt_b16_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b8_u64)))
svbool_t svwhilelt_b8_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b32_u64)))
svbool_t svwhilelt_b32_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b64_u64)))
svbool_t svwhilelt_b64_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b16_u64)))
svbool_t svwhilelt_b16_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b8_s32)))
svbool_t svwhilelt_b8_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b32_s32)))
svbool_t svwhilelt_b32_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b64_s32)))
svbool_t svwhilelt_b64_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b16_s32)))
svbool_t svwhilelt_b16_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b8_s64)))
svbool_t svwhilelt_b8_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b32_s64)))
svbool_t svwhilelt_b32_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b64_s64)))
svbool_t svwhilelt_b64_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b16_s64)))
svbool_t svwhilelt_b16_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwrffr)))
void svwrffr(svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_u8)))
svuint8_t svzip1_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_u32)))
svuint32_t svzip1_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_u64)))
svuint64_t svzip1_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_u16)))
svuint16_t svzip1_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_s8)))
svint8_t svzip1_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_f64)))
svfloat64_t svzip1_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_f32)))
svfloat32_t svzip1_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_f16)))
svfloat16_t svzip1_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_s32)))
svint32_t svzip1_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_s64)))
svint64_t svzip1_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_s16)))
svint16_t svzip1_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_b8)))
svbool_t svzip1_b8(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_b32)))
svbool_t svzip1_b32(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_b64)))
svbool_t svzip1_b64(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_b16)))
svbool_t svzip1_b16(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_u8)))
svuint8_t svzip2_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_u32)))
svuint32_t svzip2_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_u64)))
svuint64_t svzip2_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_u16)))
svuint16_t svzip2_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_s8)))
svint8_t svzip2_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_f64)))
svfloat64_t svzip2_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_f32)))
svfloat32_t svzip2_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_f16)))
svfloat16_t svzip2_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_s32)))
svint32_t svzip2_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_s64)))
svint64_t svzip2_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_s16)))
svint16_t svzip2_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_b8)))
svbool_t svzip2_b8(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_b32)))
svbool_t svzip2_b32(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_b64)))
svbool_t svzip2_b64(svbool_t, svbool_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_b16)))
svbool_t svzip2_b16(svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f64_m)))
svfloat64_t svabd_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f32_m)))
svfloat32_t svabd_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f16_m)))
svfloat16_t svabd_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f64_x)))
svfloat64_t svabd_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f32_x)))
svfloat32_t svabd_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f16_x)))
svfloat16_t svabd_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f64_z)))
svfloat64_t svabd_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f32_z)))
svfloat32_t svabd_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_f16_z)))
svfloat16_t svabd_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s8_m)))
svint8_t svabd_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s32_m)))
svint32_t svabd_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s64_m)))
svint64_t svabd_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s16_m)))
svint16_t svabd_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s8_x)))
svint8_t svabd_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s32_x)))
svint32_t svabd_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s64_x)))
svint64_t svabd_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s16_x)))
svint16_t svabd_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s8_z)))
svint8_t svabd_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s32_z)))
svint32_t svabd_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s64_z)))
svint64_t svabd_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_s16_z)))
svint16_t svabd_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u8_m)))
svuint8_t svabd_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u32_m)))
svuint32_t svabd_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u64_m)))
svuint64_t svabd_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u16_m)))
svuint16_t svabd_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u8_x)))
svuint8_t svabd_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u32_x)))
svuint32_t svabd_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u64_x)))
svuint64_t svabd_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u16_x)))
svuint16_t svabd_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u8_z)))
svuint8_t svabd_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u32_z)))
svuint32_t svabd_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u64_z)))
svuint64_t svabd_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_n_u16_z)))
svuint16_t svabd_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f64_m)))
svfloat64_t svabd_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f32_m)))
svfloat32_t svabd_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f16_m)))
svfloat16_t svabd_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f64_x)))
svfloat64_t svabd_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f32_x)))
svfloat32_t svabd_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f16_x)))
svfloat16_t svabd_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f64_z)))
svfloat64_t svabd_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f32_z)))
svfloat32_t svabd_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_f16_z)))
svfloat16_t svabd_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s8_m)))
svint8_t svabd_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s32_m)))
svint32_t svabd_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s64_m)))
svint64_t svabd_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s16_m)))
svint16_t svabd_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s8_x)))
svint8_t svabd_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s32_x)))
svint32_t svabd_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s64_x)))
svint64_t svabd_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s16_x)))
svint16_t svabd_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s8_z)))
svint8_t svabd_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s32_z)))
svint32_t svabd_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s64_z)))
svint64_t svabd_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_s16_z)))
svint16_t svabd_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u8_m)))
svuint8_t svabd_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u32_m)))
svuint32_t svabd_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u64_m)))
svuint64_t svabd_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u16_m)))
svuint16_t svabd_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u8_x)))
svuint8_t svabd_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u32_x)))
svuint32_t svabd_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u64_x)))
svuint64_t svabd_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u16_x)))
svuint16_t svabd_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u8_z)))
svuint8_t svabd_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u32_z)))
svuint32_t svabd_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u64_z)))
svuint64_t svabd_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabd_u16_z)))
svuint16_t svabd_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f64_m)))
svfloat64_t svabs_m(svfloat64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f32_m)))
svfloat32_t svabs_m(svfloat32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f16_m)))
svfloat16_t svabs_m(svfloat16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f64_x)))
svfloat64_t svabs_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f32_x)))
svfloat32_t svabs_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f16_x)))
svfloat16_t svabs_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f64_z)))
svfloat64_t svabs_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f32_z)))
svfloat32_t svabs_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_f16_z)))
svfloat16_t svabs_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s8_m)))
svint8_t svabs_m(svint8_t, svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s32_m)))
svint32_t svabs_m(svint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s64_m)))
svint64_t svabs_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s16_m)))
svint16_t svabs_m(svint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s8_x)))
svint8_t svabs_x(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s32_x)))
svint32_t svabs_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s64_x)))
svint64_t svabs_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s16_x)))
svint16_t svabs_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s8_z)))
svint8_t svabs_z(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s32_z)))
svint32_t svabs_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s64_z)))
svint64_t svabs_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabs_s16_z)))
svint16_t svabs_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_n_f64)))
svbool_t svacge(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_n_f32)))
svbool_t svacge(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_n_f16)))
svbool_t svacge(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_f64)))
svbool_t svacge(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_f32)))
svbool_t svacge(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacge_f16)))
svbool_t svacge(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_n_f64)))
svbool_t svacgt(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_n_f32)))
svbool_t svacgt(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_n_f16)))
svbool_t svacgt(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_f64)))
svbool_t svacgt(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_f32)))
svbool_t svacgt(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacgt_f16)))
svbool_t svacgt(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_n_f64)))
svbool_t svacle(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_n_f32)))
svbool_t svacle(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_n_f16)))
svbool_t svacle(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_f64)))
svbool_t svacle(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_f32)))
svbool_t svacle(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svacle_f16)))
svbool_t svacle(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_n_f64)))
svbool_t svaclt(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_n_f32)))
svbool_t svaclt(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_n_f16)))
svbool_t svaclt(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_f64)))
svbool_t svaclt(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_f32)))
svbool_t svaclt(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaclt_f16)))
svbool_t svaclt(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f64_m)))
svfloat64_t svadd_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f32_m)))
svfloat32_t svadd_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f16_m)))
svfloat16_t svadd_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f64_x)))
svfloat64_t svadd_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f32_x)))
svfloat32_t svadd_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f16_x)))
svfloat16_t svadd_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f64_z)))
svfloat64_t svadd_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f32_z)))
svfloat32_t svadd_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_f16_z)))
svfloat16_t svadd_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u8_m)))
svuint8_t svadd_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u32_m)))
svuint32_t svadd_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u64_m)))
svuint64_t svadd_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u16_m)))
svuint16_t svadd_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s8_m)))
svint8_t svadd_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s32_m)))
svint32_t svadd_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s64_m)))
svint64_t svadd_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s16_m)))
svint16_t svadd_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u8_x)))
svuint8_t svadd_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u32_x)))
svuint32_t svadd_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u64_x)))
svuint64_t svadd_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u16_x)))
svuint16_t svadd_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s8_x)))
svint8_t svadd_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s32_x)))
svint32_t svadd_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s64_x)))
svint64_t svadd_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s16_x)))
svint16_t svadd_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u8_z)))
svuint8_t svadd_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u32_z)))
svuint32_t svadd_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u64_z)))
svuint64_t svadd_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_u16_z)))
svuint16_t svadd_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s8_z)))
svint8_t svadd_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s32_z)))
svint32_t svadd_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s64_z)))
svint64_t svadd_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_n_s16_z)))
svint16_t svadd_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f64_m)))
svfloat64_t svadd_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f32_m)))
svfloat32_t svadd_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f16_m)))
svfloat16_t svadd_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f64_x)))
svfloat64_t svadd_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f32_x)))
svfloat32_t svadd_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f16_x)))
svfloat16_t svadd_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f64_z)))
svfloat64_t svadd_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f32_z)))
svfloat32_t svadd_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_f16_z)))
svfloat16_t svadd_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u8_m)))
svuint8_t svadd_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u32_m)))
svuint32_t svadd_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u64_m)))
svuint64_t svadd_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u16_m)))
svuint16_t svadd_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s8_m)))
svint8_t svadd_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s32_m)))
svint32_t svadd_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s64_m)))
svint64_t svadd_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s16_m)))
svint16_t svadd_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u8_x)))
svuint8_t svadd_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u32_x)))
svuint32_t svadd_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u64_x)))
svuint64_t svadd_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u16_x)))
svuint16_t svadd_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s8_x)))
svint8_t svadd_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s32_x)))
svint32_t svadd_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s64_x)))
svint64_t svadd_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s16_x)))
svint16_t svadd_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u8_z)))
svuint8_t svadd_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u32_z)))
svuint32_t svadd_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u64_z)))
svuint64_t svadd_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_u16_z)))
svuint16_t svadd_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s8_z)))
svint8_t svadd_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s32_z)))
svint32_t svadd_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s64_z)))
svint64_t svadd_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadd_s16_z)))
svint16_t svadd_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadda_f64)))
float64_t svadda(svbool_t, float64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadda_f32)))
float32_t svadda(svbool_t, float32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadda_f16)))
float16_t svadda(svbool_t, float16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_s8)))
int64_t svaddv(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_s32)))
int64_t svaddv(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_s64)))
int64_t svaddv(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_s16)))
int64_t svaddv(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_u8)))
uint64_t svaddv(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_u32)))
uint64_t svaddv(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_u64)))
uint64_t svaddv(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_u16)))
uint64_t svaddv(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_f64)))
float64_t svaddv(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_f32)))
float32_t svaddv(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddv_f16)))
float16_t svaddv(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrb_u32base_u32offset)))
svuint32_t svadrb_offset(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrb_u64base_u64offset)))
svuint64_t svadrb_offset(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrb_u32base_s32offset)))
svuint32_t svadrb_offset(svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrb_u64base_s64offset)))
svuint64_t svadrb_offset(svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrd_u32base_u32index)))
svuint32_t svadrd_index(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrd_u64base_u64index)))
svuint64_t svadrd_index(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrd_u32base_s32index)))
svuint32_t svadrd_index(svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrd_u64base_s64index)))
svuint64_t svadrd_index(svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrh_u32base_u32index)))
svuint32_t svadrh_index(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrh_u64base_u64index)))
svuint64_t svadrh_index(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrh_u32base_s32index)))
svuint32_t svadrh_index(svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrh_u64base_s64index)))
svuint64_t svadrh_index(svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrw_u32base_u32index)))
svuint32_t svadrw_index(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrw_u64base_u64index)))
svuint64_t svadrw_index(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrw_u32base_s32index)))
svuint32_t svadrw_index(svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadrw_u64base_s64index)))
svuint64_t svadrw_index(svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_b_z)))
svbool_t svand_z(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u8_m)))
svuint8_t svand_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u32_m)))
svuint32_t svand_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u64_m)))
svuint64_t svand_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u16_m)))
svuint16_t svand_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s8_m)))
svint8_t svand_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s32_m)))
svint32_t svand_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s64_m)))
svint64_t svand_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s16_m)))
svint16_t svand_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u8_x)))
svuint8_t svand_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u32_x)))
svuint32_t svand_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u64_x)))
svuint64_t svand_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u16_x)))
svuint16_t svand_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s8_x)))
svint8_t svand_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s32_x)))
svint32_t svand_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s64_x)))
svint64_t svand_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s16_x)))
svint16_t svand_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u8_z)))
svuint8_t svand_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u32_z)))
svuint32_t svand_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u64_z)))
svuint64_t svand_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_u16_z)))
svuint16_t svand_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s8_z)))
svint8_t svand_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s32_z)))
svint32_t svand_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s64_z)))
svint64_t svand_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_n_s16_z)))
svint16_t svand_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u8_m)))
svuint8_t svand_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u32_m)))
svuint32_t svand_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u64_m)))
svuint64_t svand_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u16_m)))
svuint16_t svand_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s8_m)))
svint8_t svand_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s32_m)))
svint32_t svand_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s64_m)))
svint64_t svand_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s16_m)))
svint16_t svand_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u8_x)))
svuint8_t svand_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u32_x)))
svuint32_t svand_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u64_x)))
svuint64_t svand_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u16_x)))
svuint16_t svand_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s8_x)))
svint8_t svand_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s32_x)))
svint32_t svand_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s64_x)))
svint64_t svand_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s16_x)))
svint16_t svand_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u8_z)))
svuint8_t svand_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u32_z)))
svuint32_t svand_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u64_z)))
svuint64_t svand_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_u16_z)))
svuint16_t svand_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s8_z)))
svint8_t svand_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s32_z)))
svint32_t svand_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s64_z)))
svint64_t svand_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svand_s16_z)))
svint16_t svand_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_u8)))
uint8_t svandv(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_u32)))
uint32_t svandv(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_u64)))
uint64_t svandv(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_u16)))
uint16_t svandv(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_s8)))
int8_t svandv(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_s32)))
int32_t svandv(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_s64)))
int64_t svandv(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svandv_s16)))
int16_t svandv(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s8_m)))
svint8_t svasr_m(svbool_t, svint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s32_m)))
svint32_t svasr_m(svbool_t, svint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s64_m)))
svint64_t svasr_m(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s16_m)))
svint16_t svasr_m(svbool_t, svint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s8_x)))
svint8_t svasr_x(svbool_t, svint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s32_x)))
svint32_t svasr_x(svbool_t, svint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s64_x)))
svint64_t svasr_x(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s16_x)))
svint16_t svasr_x(svbool_t, svint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s8_z)))
svint8_t svasr_z(svbool_t, svint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s32_z)))
svint32_t svasr_z(svbool_t, svint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s64_z)))
svint64_t svasr_z(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_n_s16_z)))
svint16_t svasr_z(svbool_t, svint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s8_m)))
svint8_t svasr_m(svbool_t, svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s32_m)))
svint32_t svasr_m(svbool_t, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s64_m)))
svint64_t svasr_m(svbool_t, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s16_m)))
svint16_t svasr_m(svbool_t, svint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s8_x)))
svint8_t svasr_x(svbool_t, svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s32_x)))
svint32_t svasr_x(svbool_t, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s64_x)))
svint64_t svasr_x(svbool_t, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s16_x)))
svint16_t svasr_x(svbool_t, svint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s8_z)))
svint8_t svasr_z(svbool_t, svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s32_z)))
svint32_t svasr_z(svbool_t, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s64_z)))
svint64_t svasr_z(svbool_t, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_s16_z)))
svint16_t svasr_z(svbool_t, svint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s8_m)))
svint8_t svasr_wide_m(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s32_m)))
svint32_t svasr_wide_m(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s16_m)))
svint16_t svasr_wide_m(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s8_x)))
svint8_t svasr_wide_x(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s32_x)))
svint32_t svasr_wide_x(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s16_x)))
svint16_t svasr_wide_x(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s8_z)))
svint8_t svasr_wide_z(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s32_z)))
svint32_t svasr_wide_z(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_n_s16_z)))
svint16_t svasr_wide_z(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s8_m)))
svint8_t svasr_wide_m(svbool_t, svint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s32_m)))
svint32_t svasr_wide_m(svbool_t, svint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s16_m)))
svint16_t svasr_wide_m(svbool_t, svint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s8_x)))
svint8_t svasr_wide_x(svbool_t, svint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s32_x)))
svint32_t svasr_wide_x(svbool_t, svint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s16_x)))
svint16_t svasr_wide_x(svbool_t, svint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s8_z)))
svint8_t svasr_wide_z(svbool_t, svint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s32_z)))
svint32_t svasr_wide_z(svbool_t, svint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasr_wide_s16_z)))
svint16_t svasr_wide_z(svbool_t, svint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s8_m)))
svint8_t svasrd_m(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s32_m)))
svint32_t svasrd_m(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s64_m)))
svint64_t svasrd_m(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s16_m)))
svint16_t svasrd_m(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s8_x)))
svint8_t svasrd_x(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s32_x)))
svint32_t svasrd_x(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s64_x)))
svint64_t svasrd_x(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s16_x)))
svint16_t svasrd_x(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s8_z)))
svint8_t svasrd_z(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s32_z)))
svint32_t svasrd_z(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s64_z)))
svint64_t svasrd_z(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svasrd_n_s16_z)))
svint16_t svasrd_z(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_b_z)))
svbool_t svbic_z(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u8_m)))
svuint8_t svbic_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u32_m)))
svuint32_t svbic_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u64_m)))
svuint64_t svbic_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u16_m)))
svuint16_t svbic_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s8_m)))
svint8_t svbic_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s32_m)))
svint32_t svbic_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s64_m)))
svint64_t svbic_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s16_m)))
svint16_t svbic_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u8_x)))
svuint8_t svbic_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u32_x)))
svuint32_t svbic_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u64_x)))
svuint64_t svbic_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u16_x)))
svuint16_t svbic_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s8_x)))
svint8_t svbic_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s32_x)))
svint32_t svbic_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s64_x)))
svint64_t svbic_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s16_x)))
svint16_t svbic_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u8_z)))
svuint8_t svbic_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u32_z)))
svuint32_t svbic_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u64_z)))
svuint64_t svbic_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_u16_z)))
svuint16_t svbic_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s8_z)))
svint8_t svbic_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s32_z)))
svint32_t svbic_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s64_z)))
svint64_t svbic_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_n_s16_z)))
svint16_t svbic_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u8_m)))
svuint8_t svbic_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u32_m)))
svuint32_t svbic_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u64_m)))
svuint64_t svbic_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u16_m)))
svuint16_t svbic_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s8_m)))
svint8_t svbic_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s32_m)))
svint32_t svbic_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s64_m)))
svint64_t svbic_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s16_m)))
svint16_t svbic_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u8_x)))
svuint8_t svbic_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u32_x)))
svuint32_t svbic_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u64_x)))
svuint64_t svbic_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u16_x)))
svuint16_t svbic_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s8_x)))
svint8_t svbic_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s32_x)))
svint32_t svbic_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s64_x)))
svint64_t svbic_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s16_x)))
svint16_t svbic_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u8_z)))
svuint8_t svbic_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u32_z)))
svuint32_t svbic_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u64_z)))
svuint64_t svbic_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_u16_z)))
svuint16_t svbic_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s8_z)))
svint8_t svbic_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s32_z)))
svint32_t svbic_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s64_z)))
svint64_t svbic_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbic_s16_z)))
svint16_t svbic_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrka_b_m)))
svbool_t svbrka_m(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrka_b_z)))
svbool_t svbrka_z(svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrkb_b_m)))
svbool_t svbrkb_m(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrkb_b_z)))
svbool_t svbrkb_z(svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrkn_b_z)))
svbool_t svbrkn_z(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrkpa_b_z)))
svbool_t svbrkpa_z(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbrkpb_b_z)))
svbool_t svbrkpb_z(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f64_m)))
svfloat64_t svcadd_m(svbool_t, svfloat64_t, svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f32_m)))
svfloat32_t svcadd_m(svbool_t, svfloat32_t, svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f16_m)))
svfloat16_t svcadd_m(svbool_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f64_x)))
svfloat64_t svcadd_x(svbool_t, svfloat64_t, svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f32_x)))
svfloat32_t svcadd_x(svbool_t, svfloat32_t, svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f16_x)))
svfloat16_t svcadd_x(svbool_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f64_z)))
svfloat64_t svcadd_z(svbool_t, svfloat64_t, svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f32_z)))
svfloat32_t svcadd_z(svbool_t, svfloat32_t, svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_f16_z)))
svfloat16_t svcadd_z(svbool_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_u8)))
uint8_t svclasta(svbool_t, uint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_u32)))
uint32_t svclasta(svbool_t, uint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_u64)))
uint64_t svclasta(svbool_t, uint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_u16)))
uint16_t svclasta(svbool_t, uint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_s8)))
int8_t svclasta(svbool_t, int8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_f64)))
float64_t svclasta(svbool_t, float64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_f32)))
float32_t svclasta(svbool_t, float32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_f16)))
float16_t svclasta(svbool_t, float16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_s32)))
int32_t svclasta(svbool_t, int32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_s64)))
int64_t svclasta(svbool_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_s16)))
int16_t svclasta(svbool_t, int16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_u8)))
svuint8_t svclasta(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_u32)))
svuint32_t svclasta(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_u64)))
svuint64_t svclasta(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_u16)))
svuint16_t svclasta(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_s8)))
svint8_t svclasta(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_f64)))
svfloat64_t svclasta(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_f32)))
svfloat32_t svclasta(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_f16)))
svfloat16_t svclasta(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_s32)))
svint32_t svclasta(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_s64)))
svint64_t svclasta(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_s16)))
svint16_t svclasta(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_u8)))
uint8_t svclastb(svbool_t, uint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_u32)))
uint32_t svclastb(svbool_t, uint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_u64)))
uint64_t svclastb(svbool_t, uint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_u16)))
uint16_t svclastb(svbool_t, uint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_s8)))
int8_t svclastb(svbool_t, int8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_f64)))
float64_t svclastb(svbool_t, float64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_f32)))
float32_t svclastb(svbool_t, float32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_f16)))
float16_t svclastb(svbool_t, float16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_s32)))
int32_t svclastb(svbool_t, int32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_s64)))
int64_t svclastb(svbool_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_s16)))
int16_t svclastb(svbool_t, int16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_u8)))
svuint8_t svclastb(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_u32)))
svuint32_t svclastb(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_u64)))
svuint64_t svclastb(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_u16)))
svuint16_t svclastb(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_s8)))
svint8_t svclastb(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_f64)))
svfloat64_t svclastb(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_f32)))
svfloat32_t svclastb(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_f16)))
svfloat16_t svclastb(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_s32)))
svint32_t svclastb(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_s64)))
svint64_t svclastb(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_s16)))
svint16_t svclastb(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s8_m)))
svuint8_t svcls_m(svuint8_t, svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s32_m)))
svuint32_t svcls_m(svuint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s64_m)))
svuint64_t svcls_m(svuint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s16_m)))
svuint16_t svcls_m(svuint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s8_x)))
svuint8_t svcls_x(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s32_x)))
svuint32_t svcls_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s64_x)))
svuint64_t svcls_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s16_x)))
svuint16_t svcls_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s8_z)))
svuint8_t svcls_z(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s32_z)))
svuint32_t svcls_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s64_z)))
svuint64_t svcls_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcls_s16_z)))
svuint16_t svcls_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u8_m)))
svuint8_t svclz_m(svuint8_t, svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u32_m)))
svuint32_t svclz_m(svuint32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u64_m)))
svuint64_t svclz_m(svuint64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u16_m)))
svuint16_t svclz_m(svuint16_t, svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s8_m)))
svuint8_t svclz_m(svuint8_t, svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s32_m)))
svuint32_t svclz_m(svuint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s64_m)))
svuint64_t svclz_m(svuint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s16_m)))
svuint16_t svclz_m(svuint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u8_x)))
svuint8_t svclz_x(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u32_x)))
svuint32_t svclz_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u64_x)))
svuint64_t svclz_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u16_x)))
svuint16_t svclz_x(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s8_x)))
svuint8_t svclz_x(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s32_x)))
svuint32_t svclz_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s64_x)))
svuint64_t svclz_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s16_x)))
svuint16_t svclz_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u8_z)))
svuint8_t svclz_z(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u32_z)))
svuint32_t svclz_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u64_z)))
svuint64_t svclz_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_u16_z)))
svuint16_t svclz_z(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s8_z)))
svuint8_t svclz_z(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s32_z)))
svuint32_t svclz_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s64_z)))
svuint64_t svclz_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclz_s16_z)))
svuint16_t svclz_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f64_m)))
svfloat64_t svcmla_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f32_m)))
svfloat32_t svcmla_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f16_m)))
svfloat16_t svcmla_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f64_x)))
svfloat64_t svcmla_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f32_x)))
svfloat32_t svcmla_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f16_x)))
svfloat16_t svcmla_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f64_z)))
svfloat64_t svcmla_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f32_z)))
svfloat32_t svcmla_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_f16_z)))
svfloat16_t svcmla_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_f32)))
svfloat32_t svcmla_lane(svfloat32_t, svfloat32_t, svfloat32_t, uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_f16)))
svfloat16_t svcmla_lane(svfloat16_t, svfloat16_t, svfloat16_t, uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_f64)))
svbool_t svcmpeq(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_f32)))
svbool_t svcmpeq(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_f16)))
svbool_t svcmpeq(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_u8)))
svbool_t svcmpeq(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_u32)))
svbool_t svcmpeq(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_u64)))
svbool_t svcmpeq(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_u16)))
svbool_t svcmpeq(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_s8)))
svbool_t svcmpeq(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_s32)))
svbool_t svcmpeq(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_s64)))
svbool_t svcmpeq(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_n_s16)))
svbool_t svcmpeq(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_u8)))
svbool_t svcmpeq(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_u32)))
svbool_t svcmpeq(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_u64)))
svbool_t svcmpeq(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_u16)))
svbool_t svcmpeq(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_s8)))
svbool_t svcmpeq(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_s32)))
svbool_t svcmpeq(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_s64)))
svbool_t svcmpeq(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_s16)))
svbool_t svcmpeq(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_f64)))
svbool_t svcmpeq(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_f32)))
svbool_t svcmpeq(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_f16)))
svbool_t svcmpeq(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_n_s8)))
svbool_t svcmpeq_wide(svbool_t, svint8_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_n_s32)))
svbool_t svcmpeq_wide(svbool_t, svint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_n_s16)))
svbool_t svcmpeq_wide(svbool_t, svint16_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_s8)))
svbool_t svcmpeq_wide(svbool_t, svint8_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_s32)))
svbool_t svcmpeq_wide(svbool_t, svint32_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpeq_wide_s16)))
svbool_t svcmpeq_wide(svbool_t, svint16_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_f64)))
svbool_t svcmpge(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_f32)))
svbool_t svcmpge(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_f16)))
svbool_t svcmpge(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_s8)))
svbool_t svcmpge(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_s32)))
svbool_t svcmpge(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_s64)))
svbool_t svcmpge(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_s16)))
svbool_t svcmpge(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_u8)))
svbool_t svcmpge(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_u32)))
svbool_t svcmpge(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_u64)))
svbool_t svcmpge(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_n_u16)))
svbool_t svcmpge(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_s8)))
svbool_t svcmpge(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_s32)))
svbool_t svcmpge(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_s64)))
svbool_t svcmpge(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_s16)))
svbool_t svcmpge(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_f64)))
svbool_t svcmpge(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_f32)))
svbool_t svcmpge(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_f16)))
svbool_t svcmpge(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_u8)))
svbool_t svcmpge(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_u32)))
svbool_t svcmpge(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_u64)))
svbool_t svcmpge(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_u16)))
svbool_t svcmpge(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_s8)))
svbool_t svcmpge_wide(svbool_t, svint8_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_s32)))
svbool_t svcmpge_wide(svbool_t, svint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_s16)))
svbool_t svcmpge_wide(svbool_t, svint16_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_u8)))
svbool_t svcmpge_wide(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_u32)))
svbool_t svcmpge_wide(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_n_u16)))
svbool_t svcmpge_wide(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_s8)))
svbool_t svcmpge_wide(svbool_t, svint8_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_s32)))
svbool_t svcmpge_wide(svbool_t, svint32_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_s16)))
svbool_t svcmpge_wide(svbool_t, svint16_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_u8)))
svbool_t svcmpge_wide(svbool_t, svuint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_u32)))
svbool_t svcmpge_wide(svbool_t, svuint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpge_wide_u16)))
svbool_t svcmpge_wide(svbool_t, svuint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_f64)))
svbool_t svcmpgt(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_f32)))
svbool_t svcmpgt(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_f16)))
svbool_t svcmpgt(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_s8)))
svbool_t svcmpgt(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_s32)))
svbool_t svcmpgt(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_s64)))
svbool_t svcmpgt(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_s16)))
svbool_t svcmpgt(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_u8)))
svbool_t svcmpgt(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_u32)))
svbool_t svcmpgt(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_u64)))
svbool_t svcmpgt(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_n_u16)))
svbool_t svcmpgt(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_s8)))
svbool_t svcmpgt(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_s32)))
svbool_t svcmpgt(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_s64)))
svbool_t svcmpgt(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_s16)))
svbool_t svcmpgt(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_f64)))
svbool_t svcmpgt(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_f32)))
svbool_t svcmpgt(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_f16)))
svbool_t svcmpgt(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_u8)))
svbool_t svcmpgt(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_u32)))
svbool_t svcmpgt(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_u64)))
svbool_t svcmpgt(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_u16)))
svbool_t svcmpgt(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_s8)))
svbool_t svcmpgt_wide(svbool_t, svint8_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_s32)))
svbool_t svcmpgt_wide(svbool_t, svint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_s16)))
svbool_t svcmpgt_wide(svbool_t, svint16_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_u8)))
svbool_t svcmpgt_wide(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_u32)))
svbool_t svcmpgt_wide(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_n_u16)))
svbool_t svcmpgt_wide(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_s8)))
svbool_t svcmpgt_wide(svbool_t, svint8_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_s32)))
svbool_t svcmpgt_wide(svbool_t, svint32_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_s16)))
svbool_t svcmpgt_wide(svbool_t, svint16_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_u8)))
svbool_t svcmpgt_wide(svbool_t, svuint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_u32)))
svbool_t svcmpgt_wide(svbool_t, svuint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpgt_wide_u16)))
svbool_t svcmpgt_wide(svbool_t, svuint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_f64)))
svbool_t svcmple(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_f32)))
svbool_t svcmple(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_f16)))
svbool_t svcmple(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_s8)))
svbool_t svcmple(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_s32)))
svbool_t svcmple(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_s64)))
svbool_t svcmple(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_s16)))
svbool_t svcmple(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_u8)))
svbool_t svcmple(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_u32)))
svbool_t svcmple(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_u64)))
svbool_t svcmple(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_n_u16)))
svbool_t svcmple(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_s8)))
svbool_t svcmple(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_s32)))
svbool_t svcmple(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_s64)))
svbool_t svcmple(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_s16)))
svbool_t svcmple(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_f64)))
svbool_t svcmple(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_f32)))
svbool_t svcmple(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_f16)))
svbool_t svcmple(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_u8)))
svbool_t svcmple(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_u32)))
svbool_t svcmple(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_u64)))
svbool_t svcmple(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_u16)))
svbool_t svcmple(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_s8)))
svbool_t svcmple_wide(svbool_t, svint8_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_s32)))
svbool_t svcmple_wide(svbool_t, svint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_s16)))
svbool_t svcmple_wide(svbool_t, svint16_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_u8)))
svbool_t svcmple_wide(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_u32)))
svbool_t svcmple_wide(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_n_u16)))
svbool_t svcmple_wide(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_s8)))
svbool_t svcmple_wide(svbool_t, svint8_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_s32)))
svbool_t svcmple_wide(svbool_t, svint32_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_s16)))
svbool_t svcmple_wide(svbool_t, svint16_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_u8)))
svbool_t svcmple_wide(svbool_t, svuint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_u32)))
svbool_t svcmple_wide(svbool_t, svuint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmple_wide_u16)))
svbool_t svcmple_wide(svbool_t, svuint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_u8)))
svbool_t svcmplt(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_u32)))
svbool_t svcmplt(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_u64)))
svbool_t svcmplt(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_u16)))
svbool_t svcmplt(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_f64)))
svbool_t svcmplt(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_f32)))
svbool_t svcmplt(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_f16)))
svbool_t svcmplt(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_s8)))
svbool_t svcmplt(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_s32)))
svbool_t svcmplt(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_s64)))
svbool_t svcmplt(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_n_s16)))
svbool_t svcmplt(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_u8)))
svbool_t svcmplt(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_u32)))
svbool_t svcmplt(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_u64)))
svbool_t svcmplt(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_u16)))
svbool_t svcmplt(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_s8)))
svbool_t svcmplt(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_s32)))
svbool_t svcmplt(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_s64)))
svbool_t svcmplt(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_s16)))
svbool_t svcmplt(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_f64)))
svbool_t svcmplt(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_f32)))
svbool_t svcmplt(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_f16)))
svbool_t svcmplt(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_u8)))
svbool_t svcmplt_wide(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_u32)))
svbool_t svcmplt_wide(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_u16)))
svbool_t svcmplt_wide(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_s8)))
svbool_t svcmplt_wide(svbool_t, svint8_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_s32)))
svbool_t svcmplt_wide(svbool_t, svint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_n_s16)))
svbool_t svcmplt_wide(svbool_t, svint16_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_u8)))
svbool_t svcmplt_wide(svbool_t, svuint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_u32)))
svbool_t svcmplt_wide(svbool_t, svuint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_u16)))
svbool_t svcmplt_wide(svbool_t, svuint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_s8)))
svbool_t svcmplt_wide(svbool_t, svint8_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_s32)))
svbool_t svcmplt_wide(svbool_t, svint32_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmplt_wide_s16)))
svbool_t svcmplt_wide(svbool_t, svint16_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_f64)))
svbool_t svcmpne(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_f32)))
svbool_t svcmpne(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_f16)))
svbool_t svcmpne(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_u8)))
svbool_t svcmpne(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_u32)))
svbool_t svcmpne(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_u64)))
svbool_t svcmpne(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_u16)))
svbool_t svcmpne(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_s8)))
svbool_t svcmpne(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_s32)))
svbool_t svcmpne(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_s64)))
svbool_t svcmpne(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_n_s16)))
svbool_t svcmpne(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_u8)))
svbool_t svcmpne(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_u32)))
svbool_t svcmpne(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_u64)))
svbool_t svcmpne(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_u16)))
svbool_t svcmpne(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_s8)))
svbool_t svcmpne(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_s32)))
svbool_t svcmpne(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_s64)))
svbool_t svcmpne(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_s16)))
svbool_t svcmpne(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_f64)))
svbool_t svcmpne(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_f32)))
svbool_t svcmpne(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_f16)))
svbool_t svcmpne(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_n_s8)))
svbool_t svcmpne_wide(svbool_t, svint8_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_n_s32)))
svbool_t svcmpne_wide(svbool_t, svint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_n_s16)))
svbool_t svcmpne_wide(svbool_t, svint16_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_s8)))
svbool_t svcmpne_wide(svbool_t, svint8_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_s32)))
svbool_t svcmpne_wide(svbool_t, svint32_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpne_wide_s16)))
svbool_t svcmpne_wide(svbool_t, svint16_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_n_f64)))
svbool_t svcmpuo(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_n_f32)))
svbool_t svcmpuo(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_n_f16)))
svbool_t svcmpuo(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_f64)))
svbool_t svcmpuo(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_f32)))
svbool_t svcmpuo(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmpuo_f16)))
svbool_t svcmpuo(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u8_m)))
svuint8_t svcnot_m(svuint8_t, svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u32_m)))
svuint32_t svcnot_m(svuint32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u64_m)))
svuint64_t svcnot_m(svuint64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u16_m)))
svuint16_t svcnot_m(svuint16_t, svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s8_m)))
svint8_t svcnot_m(svint8_t, svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s32_m)))
svint32_t svcnot_m(svint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s64_m)))
svint64_t svcnot_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s16_m)))
svint16_t svcnot_m(svint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u8_x)))
svuint8_t svcnot_x(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u32_x)))
svuint32_t svcnot_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u64_x)))
svuint64_t svcnot_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u16_x)))
svuint16_t svcnot_x(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s8_x)))
svint8_t svcnot_x(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s32_x)))
svint32_t svcnot_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s64_x)))
svint64_t svcnot_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s16_x)))
svint16_t svcnot_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u8_z)))
svuint8_t svcnot_z(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u32_z)))
svuint32_t svcnot_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u64_z)))
svuint64_t svcnot_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_u16_z)))
svuint16_t svcnot_z(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s8_z)))
svint8_t svcnot_z(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s32_z)))
svint32_t svcnot_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s64_z)))
svint64_t svcnot_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnot_s16_z)))
svint16_t svcnot_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u8_m)))
svuint8_t svcnt_m(svuint8_t, svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u32_m)))
svuint32_t svcnt_m(svuint32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u64_m)))
svuint64_t svcnt_m(svuint64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u16_m)))
svuint16_t svcnt_m(svuint16_t, svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s8_m)))
svuint8_t svcnt_m(svuint8_t, svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f64_m)))
svuint64_t svcnt_m(svuint64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f32_m)))
svuint32_t svcnt_m(svuint32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f16_m)))
svuint16_t svcnt_m(svuint16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s32_m)))
svuint32_t svcnt_m(svuint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s64_m)))
svuint64_t svcnt_m(svuint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s16_m)))
svuint16_t svcnt_m(svuint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u8_x)))
svuint8_t svcnt_x(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u32_x)))
svuint32_t svcnt_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u64_x)))
svuint64_t svcnt_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u16_x)))
svuint16_t svcnt_x(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s8_x)))
svuint8_t svcnt_x(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f64_x)))
svuint64_t svcnt_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f32_x)))
svuint32_t svcnt_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f16_x)))
svuint16_t svcnt_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s32_x)))
svuint32_t svcnt_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s64_x)))
svuint64_t svcnt_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s16_x)))
svuint16_t svcnt_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u8_z)))
svuint8_t svcnt_z(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u32_z)))
svuint32_t svcnt_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u64_z)))
svuint64_t svcnt_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_u16_z)))
svuint16_t svcnt_z(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s8_z)))
svuint8_t svcnt_z(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f64_z)))
svuint64_t svcnt_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f32_z)))
svuint32_t svcnt_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_f16_z)))
svuint16_t svcnt_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s32_z)))
svuint32_t svcnt_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s64_z)))
svuint64_t svcnt_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_s16_z)))
svuint16_t svcnt_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_u32)))
svuint32_t svcompact(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_u64)))
svuint64_t svcompact(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_f64)))
svfloat64_t svcompact(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_f32)))
svfloat32_t svcompact(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_s32)))
svint32_t svcompact(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcompact_s64)))
svint64_t svcompact(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_u8)))
svuint8x2_t svcreate2(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_u32)))
svuint32x2_t svcreate2(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_u64)))
svuint64x2_t svcreate2(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_u16)))
svuint16x2_t svcreate2(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_s8)))
svint8x2_t svcreate2(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_f64)))
svfloat64x2_t svcreate2(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_f32)))
svfloat32x2_t svcreate2(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_f16)))
svfloat16x2_t svcreate2(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_s32)))
svint32x2_t svcreate2(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_s64)))
svint64x2_t svcreate2(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_s16)))
svint16x2_t svcreate2(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_u8)))
svuint8x3_t svcreate3(svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_u32)))
svuint32x3_t svcreate3(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_u64)))
svuint64x3_t svcreate3(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_u16)))
svuint16x3_t svcreate3(svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_s8)))
svint8x3_t svcreate3(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_f64)))
svfloat64x3_t svcreate3(svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_f32)))
svfloat32x3_t svcreate3(svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_f16)))
svfloat16x3_t svcreate3(svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_s32)))
svint32x3_t svcreate3(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_s64)))
svint64x3_t svcreate3(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_s16)))
svint16x3_t svcreate3(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_u8)))
svuint8x4_t svcreate4(svuint8_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_u32)))
svuint32x4_t svcreate4(svuint32_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_u64)))
svuint64x4_t svcreate4(svuint64_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_u16)))
svuint16x4_t svcreate4(svuint16_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_s8)))
svint8x4_t svcreate4(svint8_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_f64)))
svfloat64x4_t svcreate4(svfloat64_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_f32)))
svfloat32x4_t svcreate4(svfloat32_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_f16)))
svfloat16x4_t svcreate4(svfloat16_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_s32)))
svint32x4_t svcreate4(svint32_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_s64)))
svint64x4_t svcreate4(svint64_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_s16)))
svint16x4_t svcreate4(svint16_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f32_m)))
svfloat16_t svcvt_f16_m(svfloat16_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f32_x)))
svfloat16_t svcvt_f16_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f32_z)))
svfloat16_t svcvt_f16_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f64_m)))
svfloat16_t svcvt_f16_m(svfloat16_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f64_x)))
svfloat16_t svcvt_f16_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_f64_z)))
svfloat16_t svcvt_f16_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s16_m)))
svfloat16_t svcvt_f16_m(svfloat16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s16_x)))
svfloat16_t svcvt_f16_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s16_z)))
svfloat16_t svcvt_f16_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s32_m)))
svfloat16_t svcvt_f16_m(svfloat16_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s32_x)))
svfloat16_t svcvt_f16_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s32_z)))
svfloat16_t svcvt_f16_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s64_m)))
svfloat16_t svcvt_f16_m(svfloat16_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s64_x)))
svfloat16_t svcvt_f16_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_s64_z)))
svfloat16_t svcvt_f16_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u16_m)))
svfloat16_t svcvt_f16_m(svfloat16_t, svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u16_x)))
svfloat16_t svcvt_f16_x(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u16_z)))
svfloat16_t svcvt_f16_z(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u32_m)))
svfloat16_t svcvt_f16_m(svfloat16_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u32_x)))
svfloat16_t svcvt_f16_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u32_z)))
svfloat16_t svcvt_f16_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u64_m)))
svfloat16_t svcvt_f16_m(svfloat16_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u64_x)))
svfloat16_t svcvt_f16_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f16_u64_z)))
svfloat16_t svcvt_f16_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f16_m)))
svfloat32_t svcvt_f32_m(svfloat32_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f16_x)))
svfloat32_t svcvt_f32_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f16_z)))
svfloat32_t svcvt_f32_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f64_m)))
svfloat32_t svcvt_f32_m(svfloat32_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f64_x)))
svfloat32_t svcvt_f32_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_f64_z)))
svfloat32_t svcvt_f32_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s32_m)))
svfloat32_t svcvt_f32_m(svfloat32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s32_x)))
svfloat32_t svcvt_f32_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s32_z)))
svfloat32_t svcvt_f32_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s64_m)))
svfloat32_t svcvt_f32_m(svfloat32_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s64_x)))
svfloat32_t svcvt_f32_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_s64_z)))
svfloat32_t svcvt_f32_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u32_m)))
svfloat32_t svcvt_f32_m(svfloat32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u32_x)))
svfloat32_t svcvt_f32_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u32_z)))
svfloat32_t svcvt_f32_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u64_m)))
svfloat32_t svcvt_f32_m(svfloat32_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u64_x)))
svfloat32_t svcvt_f32_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f32_u64_z)))
svfloat32_t svcvt_f32_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f16_m)))
svfloat64_t svcvt_f64_m(svfloat64_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f16_x)))
svfloat64_t svcvt_f64_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f16_z)))
svfloat64_t svcvt_f64_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f32_m)))
svfloat64_t svcvt_f64_m(svfloat64_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f32_x)))
svfloat64_t svcvt_f64_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_f32_z)))
svfloat64_t svcvt_f64_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s32_m)))
svfloat64_t svcvt_f64_m(svfloat64_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s32_x)))
svfloat64_t svcvt_f64_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s32_z)))
svfloat64_t svcvt_f64_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s64_m)))
svfloat64_t svcvt_f64_m(svfloat64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s64_x)))
svfloat64_t svcvt_f64_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_s64_z)))
svfloat64_t svcvt_f64_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u32_m)))
svfloat64_t svcvt_f64_m(svfloat64_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u32_x)))
svfloat64_t svcvt_f64_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u32_z)))
svfloat64_t svcvt_f64_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u64_m)))
svfloat64_t svcvt_f64_m(svfloat64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u64_x)))
svfloat64_t svcvt_f64_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_f64_u64_z)))
svfloat64_t svcvt_f64_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s16_f16_m)))
svint16_t svcvt_s16_m(svint16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s16_f16_x)))
svint16_t svcvt_s16_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s16_f16_z)))
svint16_t svcvt_s16_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f16_m)))
svint32_t svcvt_s32_m(svint32_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f16_x)))
svint32_t svcvt_s32_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f16_z)))
svint32_t svcvt_s32_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f32_m)))
svint32_t svcvt_s32_m(svint32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f32_x)))
svint32_t svcvt_s32_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f32_z)))
svint32_t svcvt_s32_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f64_m)))
svint32_t svcvt_s32_m(svint32_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f64_x)))
svint32_t svcvt_s32_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s32_f64_z)))
svint32_t svcvt_s32_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f16_m)))
svint64_t svcvt_s64_m(svint64_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f16_x)))
svint64_t svcvt_s64_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f16_z)))
svint64_t svcvt_s64_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f32_m)))
svint64_t svcvt_s64_m(svint64_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f32_x)))
svint64_t svcvt_s64_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f32_z)))
svint64_t svcvt_s64_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f64_m)))
svint64_t svcvt_s64_m(svint64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f64_x)))
svint64_t svcvt_s64_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_s64_f64_z)))
svint64_t svcvt_s64_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u16_f16_m)))
svuint16_t svcvt_u16_m(svuint16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u16_f16_x)))
svuint16_t svcvt_u16_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u16_f16_z)))
svuint16_t svcvt_u16_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f16_m)))
svuint32_t svcvt_u32_m(svuint32_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f16_x)))
svuint32_t svcvt_u32_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f16_z)))
svuint32_t svcvt_u32_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f32_m)))
svuint32_t svcvt_u32_m(svuint32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f32_x)))
svuint32_t svcvt_u32_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f32_z)))
svuint32_t svcvt_u32_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f64_m)))
svuint32_t svcvt_u32_m(svuint32_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f64_x)))
svuint32_t svcvt_u32_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u32_f64_z)))
svuint32_t svcvt_u32_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f16_m)))
svuint64_t svcvt_u64_m(svuint64_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f16_x)))
svuint64_t svcvt_u64_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f16_z)))
svuint64_t svcvt_u64_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f32_m)))
svuint64_t svcvt_u64_m(svuint64_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f32_x)))
svuint64_t svcvt_u64_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f32_z)))
svuint64_t svcvt_u64_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f64_m)))
svuint64_t svcvt_u64_m(svuint64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f64_x)))
svuint64_t svcvt_u64_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_u64_f64_z)))
svuint64_t svcvt_u64_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f64_m)))
svfloat64_t svdiv_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f32_m)))
svfloat32_t svdiv_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f16_m)))
svfloat16_t svdiv_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f64_x)))
svfloat64_t svdiv_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f32_x)))
svfloat32_t svdiv_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f16_x)))
svfloat16_t svdiv_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f64_z)))
svfloat64_t svdiv_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f32_z)))
svfloat32_t svdiv_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_f16_z)))
svfloat16_t svdiv_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s32_m)))
svint32_t svdiv_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s64_m)))
svint64_t svdiv_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s32_x)))
svint32_t svdiv_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s64_x)))
svint64_t svdiv_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s32_z)))
svint32_t svdiv_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_s64_z)))
svint64_t svdiv_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u32_m)))
svuint32_t svdiv_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u64_m)))
svuint64_t svdiv_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u32_x)))
svuint32_t svdiv_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u64_x)))
svuint64_t svdiv_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u32_z)))
svuint32_t svdiv_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_n_u64_z)))
svuint64_t svdiv_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f64_m)))
svfloat64_t svdiv_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f32_m)))
svfloat32_t svdiv_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f16_m)))
svfloat16_t svdiv_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f64_x)))
svfloat64_t svdiv_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f32_x)))
svfloat32_t svdiv_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f16_x)))
svfloat16_t svdiv_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f64_z)))
svfloat64_t svdiv_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f32_z)))
svfloat32_t svdiv_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_f16_z)))
svfloat16_t svdiv_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s32_m)))
svint32_t svdiv_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s64_m)))
svint64_t svdiv_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s32_x)))
svint32_t svdiv_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s64_x)))
svint64_t svdiv_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s32_z)))
svint32_t svdiv_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_s64_z)))
svint64_t svdiv_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u32_m)))
svuint32_t svdiv_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u64_m)))
svuint64_t svdiv_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u32_x)))
svuint32_t svdiv_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u64_x)))
svuint64_t svdiv_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u32_z)))
svuint32_t svdiv_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdiv_u64_z)))
svuint64_t svdiv_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f64_m)))
svfloat64_t svdivr_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f32_m)))
svfloat32_t svdivr_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f16_m)))
svfloat16_t svdivr_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f64_x)))
svfloat64_t svdivr_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f32_x)))
svfloat32_t svdivr_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f16_x)))
svfloat16_t svdivr_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f64_z)))
svfloat64_t svdivr_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f32_z)))
svfloat32_t svdivr_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_f16_z)))
svfloat16_t svdivr_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s32_m)))
svint32_t svdivr_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s64_m)))
svint64_t svdivr_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s32_x)))
svint32_t svdivr_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s64_x)))
svint64_t svdivr_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s32_z)))
svint32_t svdivr_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_s64_z)))
svint64_t svdivr_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u32_m)))
svuint32_t svdivr_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u64_m)))
svuint64_t svdivr_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u32_x)))
svuint32_t svdivr_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u64_x)))
svuint64_t svdivr_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u32_z)))
svuint32_t svdivr_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_n_u64_z)))
svuint64_t svdivr_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f64_m)))
svfloat64_t svdivr_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f32_m)))
svfloat32_t svdivr_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f16_m)))
svfloat16_t svdivr_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f64_x)))
svfloat64_t svdivr_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f32_x)))
svfloat32_t svdivr_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f16_x)))
svfloat16_t svdivr_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f64_z)))
svfloat64_t svdivr_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f32_z)))
svfloat32_t svdivr_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_f16_z)))
svfloat16_t svdivr_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s32_m)))
svint32_t svdivr_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s64_m)))
svint64_t svdivr_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s32_x)))
svint32_t svdivr_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s64_x)))
svint64_t svdivr_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s32_z)))
svint32_t svdivr_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_s64_z)))
svint64_t svdivr_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u32_m)))
svuint32_t svdivr_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u64_m)))
svuint64_t svdivr_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u32_x)))
svuint32_t svdivr_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u64_x)))
svuint64_t svdivr_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u32_z)))
svuint32_t svdivr_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdivr_u64_z)))
svuint64_t svdivr_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_n_s32)))
svint32_t svdot(svint32_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_n_s64)))
svint64_t svdot(svint64_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_n_u32)))
svuint32_t svdot(svuint32_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_n_u64)))
svuint64_t svdot(svuint64_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_s32)))
svint32_t svdot(svint32_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_s64)))
svint64_t svdot(svint64_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_u32)))
svuint32_t svdot(svuint32_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_u64)))
svuint64_t svdot(svuint64_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_lane_s32)))
svint32_t svdot_lane(svint32_t, svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_lane_s64)))
svint64_t svdot_lane(svint64_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_lane_u32)))
svuint32_t svdot_lane(svuint32_t, svuint8_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdot_lane_u64)))
svuint64_t svdot_lane(svuint64_t, svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u8)))
svuint8_t svdup_u8(uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u32)))
svuint32_t svdup_u32(uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u64)))
svuint64_t svdup_u64(uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u16)))
svuint16_t svdup_u16(uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s8)))
svint8_t svdup_s8(int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f64)))
svfloat64_t svdup_f64(float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f32)))
svfloat32_t svdup_f32(float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f16)))
svfloat16_t svdup_f16(float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s32)))
svint32_t svdup_s32(int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s64)))
svint64_t svdup_s64(int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s16)))
svint16_t svdup_s16(int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u8_m)))
svuint8_t svdup_u8_m(svuint8_t, svbool_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u32_m)))
svuint32_t svdup_u32_m(svuint32_t, svbool_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u64_m)))
svuint64_t svdup_u64_m(svuint64_t, svbool_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u16_m)))
svuint16_t svdup_u16_m(svuint16_t, svbool_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s8_m)))
svint8_t svdup_s8_m(svint8_t, svbool_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f64_m)))
svfloat64_t svdup_f64_m(svfloat64_t, svbool_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f32_m)))
svfloat32_t svdup_f32_m(svfloat32_t, svbool_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f16_m)))
svfloat16_t svdup_f16_m(svfloat16_t, svbool_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s32_m)))
svint32_t svdup_s32_m(svint32_t, svbool_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s64_m)))
svint64_t svdup_s64_m(svint64_t, svbool_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s16_m)))
svint16_t svdup_s16_m(svint16_t, svbool_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_b8)))
svbool_t svdup_b8(bool);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_b32)))
svbool_t svdup_b32(bool);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_b64)))
svbool_t svdup_b64(bool);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_b16)))
svbool_t svdup_b16(bool);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u8_x)))
svuint8_t svdup_u8_x(svbool_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u32_x)))
svuint32_t svdup_u32_x(svbool_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u64_x)))
svuint64_t svdup_u64_x(svbool_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u16_x)))
svuint16_t svdup_u16_x(svbool_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s8_x)))
svint8_t svdup_s8_x(svbool_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f64_x)))
svfloat64_t svdup_f64_x(svbool_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f32_x)))
svfloat32_t svdup_f32_x(svbool_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f16_x)))
svfloat16_t svdup_f16_x(svbool_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s32_x)))
svint32_t svdup_s32_x(svbool_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s64_x)))
svint64_t svdup_s64_x(svbool_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s16_x)))
svint16_t svdup_s16_x(svbool_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u8_z)))
svuint8_t svdup_u8_z(svbool_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u32_z)))
svuint32_t svdup_u32_z(svbool_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u64_z)))
svuint64_t svdup_u64_z(svbool_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_u16_z)))
svuint16_t svdup_u16_z(svbool_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s8_z)))
svint8_t svdup_s8_z(svbool_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f64_z)))
svfloat64_t svdup_f64_z(svbool_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f32_z)))
svfloat32_t svdup_f32_z(svbool_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_f16_z)))
svfloat16_t svdup_f16_z(svbool_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s32_z)))
svint32_t svdup_s32_z(svbool_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s64_z)))
svint64_t svdup_s64_z(svbool_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_s16_z)))
svint16_t svdup_s16_z(svbool_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_u8)))
svuint8_t svdup_lane(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_u32)))
svuint32_t svdup_lane(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_u64)))
svuint64_t svdup_lane(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_u16)))
svuint16_t svdup_lane(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_s8)))
svint8_t svdup_lane(svint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_f64)))
svfloat64_t svdup_lane(svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_f32)))
svfloat32_t svdup_lane(svfloat32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_f16)))
svfloat16_t svdup_lane(svfloat16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_s32)))
svint32_t svdup_lane(svint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_s64)))
svint64_t svdup_lane(svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_s16)))
svint16_t svdup_lane(svint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_u16)))
svuint16_t svdupq_u16(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_f16)))
svfloat16_t svdupq_f16(float16_t, float16_t, float16_t, float16_t, float16_t, float16_t, float16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_s16)))
svint16_t svdupq_s16(int16_t, int16_t, int16_t, int16_t, int16_t, int16_t, int16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_u32)))
svuint32_t svdupq_u32(uint32_t, uint32_t, uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_f32)))
svfloat32_t svdupq_f32(float32_t, float32_t, float32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_s32)))
svint32_t svdupq_s32(int32_t, int32_t, int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_u64)))
svuint64_t svdupq_u64(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_f64)))
svfloat64_t svdupq_f64(float64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_s64)))
svint64_t svdupq_s64(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_u8)))
svuint8_t svdupq_u8(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_s8)))
svint8_t svdupq_s8(int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_b16)))
svbool_t svdupq_b16(bool, bool, bool, bool, bool, bool, bool, bool);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_b32)))
svbool_t svdupq_b32(bool, bool, bool, bool);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_b64)))
svbool_t svdupq_b64(bool, bool);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_b8)))
svbool_t svdupq_b8(bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_u8)))
svuint8_t svdupq_lane(svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_u32)))
svuint32_t svdupq_lane(svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_u64)))
svuint64_t svdupq_lane(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_u16)))
svuint16_t svdupq_lane(svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_s8)))
svint8_t svdupq_lane(svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_f64)))
svfloat64_t svdupq_lane(svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_f32)))
svfloat32_t svdupq_lane(svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_f16)))
svfloat16_t svdupq_lane(svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_s32)))
svint32_t svdupq_lane(svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_s64)))
svint64_t svdupq_lane(svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_s16)))
svint16_t svdupq_lane(svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_b_z)))
svbool_t sveor_z(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u8_m)))
svuint8_t sveor_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u32_m)))
svuint32_t sveor_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u64_m)))
svuint64_t sveor_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u16_m)))
svuint16_t sveor_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s8_m)))
svint8_t sveor_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s32_m)))
svint32_t sveor_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s64_m)))
svint64_t sveor_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s16_m)))
svint16_t sveor_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u8_x)))
svuint8_t sveor_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u32_x)))
svuint32_t sveor_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u64_x)))
svuint64_t sveor_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u16_x)))
svuint16_t sveor_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s8_x)))
svint8_t sveor_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s32_x)))
svint32_t sveor_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s64_x)))
svint64_t sveor_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s16_x)))
svint16_t sveor_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u8_z)))
svuint8_t sveor_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u32_z)))
svuint32_t sveor_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u64_z)))
svuint64_t sveor_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_u16_z)))
svuint16_t sveor_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s8_z)))
svint8_t sveor_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s32_z)))
svint32_t sveor_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s64_z)))
svint64_t sveor_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_n_s16_z)))
svint16_t sveor_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u8_m)))
svuint8_t sveor_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u32_m)))
svuint32_t sveor_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u64_m)))
svuint64_t sveor_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u16_m)))
svuint16_t sveor_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s8_m)))
svint8_t sveor_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s32_m)))
svint32_t sveor_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s64_m)))
svint64_t sveor_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s16_m)))
svint16_t sveor_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u8_x)))
svuint8_t sveor_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u32_x)))
svuint32_t sveor_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u64_x)))
svuint64_t sveor_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u16_x)))
svuint16_t sveor_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s8_x)))
svint8_t sveor_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s32_x)))
svint32_t sveor_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s64_x)))
svint64_t sveor_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s16_x)))
svint16_t sveor_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u8_z)))
svuint8_t sveor_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u32_z)))
svuint32_t sveor_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u64_z)))
svuint64_t sveor_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_u16_z)))
svuint16_t sveor_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s8_z)))
svint8_t sveor_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s32_z)))
svint32_t sveor_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s64_z)))
svint64_t sveor_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor_s16_z)))
svint16_t sveor_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_u8)))
uint8_t sveorv(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_u32)))
uint32_t sveorv(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_u64)))
uint64_t sveorv(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_u16)))
uint16_t sveorv(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_s8)))
int8_t sveorv(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_s32)))
int32_t sveorv(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_s64)))
int64_t sveorv(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorv_s16)))
int16_t sveorv(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexpa_f64)))
svfloat64_t svexpa(svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexpa_f32)))
svfloat32_t svexpa(svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexpa_f16)))
svfloat16_t svexpa(svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_u8)))
svuint8_t svext(svuint8_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_u32)))
svuint32_t svext(svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_u64)))
svuint64_t svext(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_u16)))
svuint16_t svext(svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_s8)))
svint8_t svext(svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_f64)))
svfloat64_t svext(svfloat64_t, svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_f32)))
svfloat32_t svext(svfloat32_t, svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_f16)))
svfloat16_t svext(svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_s32)))
svint32_t svext(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_s64)))
svint64_t svext(svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_s16)))
svint16_t svext(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s32_m)))
svint32_t svextb_m(svint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s64_m)))
svint64_t svextb_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s16_m)))
svint16_t svextb_m(svint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s32_x)))
svint32_t svextb_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s64_x)))
svint64_t svextb_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s16_x)))
svint16_t svextb_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s32_z)))
svint32_t svextb_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s64_z)))
svint64_t svextb_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_s16_z)))
svint16_t svextb_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u32_m)))
svuint32_t svextb_m(svuint32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u64_m)))
svuint64_t svextb_m(svuint64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u16_m)))
svuint16_t svextb_m(svuint16_t, svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u32_x)))
svuint32_t svextb_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u64_x)))
svuint64_t svextb_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u16_x)))
svuint16_t svextb_x(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u32_z)))
svuint32_t svextb_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u64_z)))
svuint64_t svextb_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextb_u16_z)))
svuint16_t svextb_z(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s32_m)))
svint32_t svexth_m(svint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s64_m)))
svint64_t svexth_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s32_x)))
svint32_t svexth_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s64_x)))
svint64_t svexth_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s32_z)))
svint32_t svexth_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_s64_z)))
svint64_t svexth_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u32_m)))
svuint32_t svexth_m(svuint32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u64_m)))
svuint64_t svexth_m(svuint64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u32_x)))
svuint32_t svexth_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u64_x)))
svuint64_t svexth_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u32_z)))
svuint32_t svexth_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svexth_u64_z)))
svuint64_t svexth_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_s64_m)))
svint64_t svextw_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_s64_x)))
svint64_t svextw_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_s64_z)))
svint64_t svextw_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_u64_m)))
svuint64_t svextw_m(svuint64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_u64_x)))
svuint64_t svextw_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svextw_u64_z)))
svuint64_t svextw_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_u8)))
svuint8_t svget2(svuint8x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_u32)))
svuint32_t svget2(svuint32x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_u64)))
svuint64_t svget2(svuint64x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_u16)))
svuint16_t svget2(svuint16x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_s8)))
svint8_t svget2(svint8x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_f64)))
svfloat64_t svget2(svfloat64x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_f32)))
svfloat32_t svget2(svfloat32x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_f16)))
svfloat16_t svget2(svfloat16x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_s32)))
svint32_t svget2(svint32x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_s64)))
svint64_t svget2(svint64x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_s16)))
svint16_t svget2(svint16x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_u8)))
svuint8_t svget3(svuint8x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_u32)))
svuint32_t svget3(svuint32x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_u64)))
svuint64_t svget3(svuint64x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_u16)))
svuint16_t svget3(svuint16x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_s8)))
svint8_t svget3(svint8x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_f64)))
svfloat64_t svget3(svfloat64x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_f32)))
svfloat32_t svget3(svfloat32x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_f16)))
svfloat16_t svget3(svfloat16x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_s32)))
svint32_t svget3(svint32x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_s64)))
svint64_t svget3(svint64x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_s16)))
svint16_t svget3(svint16x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_u8)))
svuint8_t svget4(svuint8x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_u32)))
svuint32_t svget4(svuint32x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_u64)))
svuint64_t svget4(svuint64x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_u16)))
svuint16_t svget4(svuint16x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_s8)))
svint8_t svget4(svint8x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_f64)))
svfloat64_t svget4(svfloat64x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_f32)))
svfloat32_t svget4(svfloat32x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_f16)))
svfloat16_t svget4(svfloat16x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_s32)))
svint32_t svget4(svint32x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_s64)))
svint64_t svget4(svint64x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_s16)))
svint16_t svget4(svint16x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_u8)))
svuint8_t svinsr(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_u32)))
svuint32_t svinsr(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_u64)))
svuint64_t svinsr(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_u16)))
svuint16_t svinsr(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_s8)))
svint8_t svinsr(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_f64)))
svfloat64_t svinsr(svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_f32)))
svfloat32_t svinsr(svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_f16)))
svfloat16_t svinsr(svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_s32)))
svint32_t svinsr(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_s64)))
svint64_t svinsr(svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_s16)))
svint16_t svinsr(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_u8)))
uint8_t svlasta(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_u32)))
uint32_t svlasta(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_u64)))
uint64_t svlasta(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_u16)))
uint16_t svlasta(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_s8)))
int8_t svlasta(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_f64)))
float64_t svlasta(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_f32)))
float32_t svlasta(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_f16)))
float16_t svlasta(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_s32)))
int32_t svlasta(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_s64)))
int64_t svlasta(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_s16)))
int16_t svlasta(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_u8)))
uint8_t svlastb(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_u32)))
uint32_t svlastb(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_u64)))
uint64_t svlastb(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_u16)))
uint16_t svlastb(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_s8)))
int8_t svlastb(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_f64)))
float64_t svlastb(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_f32)))
float32_t svlastb(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_f16)))
float16_t svlastb(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_s32)))
int32_t svlastb(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_s64)))
int64_t svlastb(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_s16)))
int16_t svlastb(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_u8)))
svuint8_t svld1(svbool_t, uint8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_u32)))
svuint32_t svld1(svbool_t, uint32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_u64)))
svuint64_t svld1(svbool_t, uint64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_u16)))
svuint16_t svld1(svbool_t, uint16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_s8)))
svint8_t svld1(svbool_t, int8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_f64)))
svfloat64_t svld1(svbool_t, float64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_f32)))
svfloat32_t svld1(svbool_t, float32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_f16)))
svfloat16_t svld1(svbool_t, float16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_s32)))
svint32_t svld1(svbool_t, int32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_s64)))
svint64_t svld1(svbool_t, int64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_s16)))
svint16_t svld1(svbool_t, int16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_index_u32)))
svuint32_t svld1_gather_index_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_index_u64)))
svuint64_t svld1_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_index_f64)))
svfloat64_t svld1_gather_index_f64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_index_f32)))
svfloat32_t svld1_gather_index_f32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_index_s32)))
svint32_t svld1_gather_index_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_index_s64)))
svint64_t svld1_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_offset_u32)))
svuint32_t svld1_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_offset_u64)))
svuint64_t svld1_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_offset_f64)))
svfloat64_t svld1_gather_offset_f64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_offset_f32)))
svfloat32_t svld1_gather_offset_f32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_offset_s32)))
svint32_t svld1_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_offset_s64)))
svint64_t svld1_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_u32)))
svuint32_t svld1_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_u64)))
svuint64_t svld1_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_f64)))
svfloat64_t svld1_gather_f64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_f32)))
svfloat32_t svld1_gather_f32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32base_s32)))
svint32_t svld1_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64base_s64)))
svint64_t svld1_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32index_u32)))
svuint32_t svld1_gather_index(svbool_t, uint32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32index_f32)))
svfloat32_t svld1_gather_index(svbool_t, float32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32index_s32)))
svint32_t svld1_gather_index(svbool_t, int32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32index_u32)))
svuint32_t svld1_gather_index(svbool_t, uint32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32index_f32)))
svfloat32_t svld1_gather_index(svbool_t, float32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32index_s32)))
svint32_t svld1_gather_index(svbool_t, int32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64index_u64)))
svuint64_t svld1_gather_index(svbool_t, uint64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64index_f64)))
svfloat64_t svld1_gather_index(svbool_t, float64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64index_s64)))
svint64_t svld1_gather_index(svbool_t, int64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64index_u64)))
svuint64_t svld1_gather_index(svbool_t, uint64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64index_f64)))
svfloat64_t svld1_gather_index(svbool_t, float64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64index_s64)))
svint64_t svld1_gather_index(svbool_t, int64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32offset_u32)))
svuint32_t svld1_gather_offset(svbool_t, uint32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32offset_f32)))
svfloat32_t svld1_gather_offset(svbool_t, float32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s32offset_s32)))
svint32_t svld1_gather_offset(svbool_t, int32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32offset_u32)))
svuint32_t svld1_gather_offset(svbool_t, uint32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32offset_f32)))
svfloat32_t svld1_gather_offset(svbool_t, float32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u32offset_s32)))
svint32_t svld1_gather_offset(svbool_t, int32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64offset_u64)))
svuint64_t svld1_gather_offset(svbool_t, uint64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64offset_f64)))
svfloat64_t svld1_gather_offset(svbool_t, float64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_s64offset_s64)))
svint64_t svld1_gather_offset(svbool_t, int64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64offset_u64)))
svuint64_t svld1_gather_offset(svbool_t, uint64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64offset_f64)))
svfloat64_t svld1_gather_offset(svbool_t, float64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_gather_u64offset_s64)))
svint64_t svld1_gather_offset(svbool_t, int64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_u8)))
svuint8_t svld1_vnum(svbool_t, uint8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_u32)))
svuint32_t svld1_vnum(svbool_t, uint32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_u64)))
svuint64_t svld1_vnum(svbool_t, uint64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_u16)))
svuint16_t svld1_vnum(svbool_t, uint16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_s8)))
svint8_t svld1_vnum(svbool_t, int8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_f64)))
svfloat64_t svld1_vnum(svbool_t, float64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_f32)))
svfloat32_t svld1_vnum(svbool_t, float32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_f16)))
svfloat16_t svld1_vnum(svbool_t, float16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_s32)))
svint32_t svld1_vnum(svbool_t, int32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_s64)))
svint64_t svld1_vnum(svbool_t, int64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_s16)))
svint16_t svld1_vnum(svbool_t, int16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_u8)))
svuint8_t svld1rq(svbool_t, uint8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_u32)))
svuint32_t svld1rq(svbool_t, uint32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_u64)))
svuint64_t svld1rq(svbool_t, uint64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_u16)))
svuint16_t svld1rq(svbool_t, uint16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_s8)))
svint8_t svld1rq(svbool_t, int8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_f64)))
svfloat64_t svld1rq(svbool_t, float64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_f32)))
svfloat32_t svld1rq(svbool_t, float32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_f16)))
svfloat16_t svld1rq(svbool_t, float16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_s32)))
svint32_t svld1rq(svbool_t, int32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_s64)))
svint64_t svld1rq(svbool_t, int64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_s16)))
svint16_t svld1rq(svbool_t, int16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32base_offset_u32)))
svuint32_t svld1sb_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64base_offset_u64)))
svuint64_t svld1sb_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32base_offset_s32)))
svint32_t svld1sb_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64base_offset_s64)))
svint64_t svld1sb_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32base_u32)))
svuint32_t svld1sb_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64base_u64)))
svuint64_t svld1sb_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32base_s32)))
svint32_t svld1sb_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64base_s64)))
svint64_t svld1sb_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_s32offset_u32)))
svuint32_t svld1sb_gather_offset_u32(svbool_t, int8_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_s32offset_s32)))
svint32_t svld1sb_gather_offset_s32(svbool_t, int8_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32offset_u32)))
svuint32_t svld1sb_gather_offset_u32(svbool_t, int8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u32offset_s32)))
svint32_t svld1sb_gather_offset_s32(svbool_t, int8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_s64offset_u64)))
svuint64_t svld1sb_gather_offset_u64(svbool_t, int8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_s64offset_s64)))
svint64_t svld1sb_gather_offset_s64(svbool_t, int8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64offset_u64)))
svuint64_t svld1sb_gather_offset_u64(svbool_t, int8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sb_gather_u64offset_s64)))
svint64_t svld1sb_gather_offset_s64(svbool_t, int8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_index_u32)))
svuint32_t svld1sh_gather_index_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_index_u64)))
svuint64_t svld1sh_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_index_s32)))
svint32_t svld1sh_gather_index_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_index_s64)))
svint64_t svld1sh_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_offset_u32)))
svuint32_t svld1sh_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_offset_u64)))
svuint64_t svld1sh_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_offset_s32)))
svint32_t svld1sh_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_offset_s64)))
svint64_t svld1sh_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_u32)))
svuint32_t svld1sh_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_u64)))
svuint64_t svld1sh_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32base_s32)))
svint32_t svld1sh_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64base_s64)))
svint64_t svld1sh_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s32index_u32)))
svuint32_t svld1sh_gather_index_u32(svbool_t, int16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s32index_s32)))
svint32_t svld1sh_gather_index_s32(svbool_t, int16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32index_u32)))
svuint32_t svld1sh_gather_index_u32(svbool_t, int16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32index_s32)))
svint32_t svld1sh_gather_index_s32(svbool_t, int16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s64index_u64)))
svuint64_t svld1sh_gather_index_u64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s64index_s64)))
svint64_t svld1sh_gather_index_s64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64index_u64)))
svuint64_t svld1sh_gather_index_u64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64index_s64)))
svint64_t svld1sh_gather_index_s64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s32offset_u32)))
svuint32_t svld1sh_gather_offset_u32(svbool_t, int16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s32offset_s32)))
svint32_t svld1sh_gather_offset_s32(svbool_t, int16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32offset_u32)))
svuint32_t svld1sh_gather_offset_u32(svbool_t, int16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u32offset_s32)))
svint32_t svld1sh_gather_offset_s32(svbool_t, int16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s64offset_u64)))
svuint64_t svld1sh_gather_offset_u64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_s64offset_s64)))
svint64_t svld1sh_gather_offset_s64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64offset_u64)))
svuint64_t svld1sh_gather_offset_u64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sh_gather_u64offset_s64)))
svint64_t svld1sh_gather_offset_s64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_index_u64)))
svuint64_t svld1sw_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_index_s64)))
svint64_t svld1sw_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_offset_u64)))
svuint64_t svld1sw_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_offset_s64)))
svint64_t svld1sw_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_u64)))
svuint64_t svld1sw_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64base_s64)))
svint64_t svld1sw_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_s64index_u64)))
svuint64_t svld1sw_gather_index_u64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_s64index_s64)))
svint64_t svld1sw_gather_index_s64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64index_u64)))
svuint64_t svld1sw_gather_index_u64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64index_s64)))
svint64_t svld1sw_gather_index_s64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_s64offset_u64)))
svuint64_t svld1sw_gather_offset_u64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_s64offset_s64)))
svint64_t svld1sw_gather_offset_s64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64offset_u64)))
svuint64_t svld1sw_gather_offset_u64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1sw_gather_u64offset_s64)))
svint64_t svld1sw_gather_offset_s64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32base_offset_u32)))
svuint32_t svld1ub_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64base_offset_u64)))
svuint64_t svld1ub_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32base_offset_s32)))
svint32_t svld1ub_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64base_offset_s64)))
svint64_t svld1ub_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32base_u32)))
svuint32_t svld1ub_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64base_u64)))
svuint64_t svld1ub_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32base_s32)))
svint32_t svld1ub_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64base_s64)))
svint64_t svld1ub_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_s32offset_u32)))
svuint32_t svld1ub_gather_offset_u32(svbool_t, uint8_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_s32offset_s32)))
svint32_t svld1ub_gather_offset_s32(svbool_t, uint8_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32offset_u32)))
svuint32_t svld1ub_gather_offset_u32(svbool_t, uint8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u32offset_s32)))
svint32_t svld1ub_gather_offset_s32(svbool_t, uint8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_s64offset_u64)))
svuint64_t svld1ub_gather_offset_u64(svbool_t, uint8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_s64offset_s64)))
svint64_t svld1ub_gather_offset_s64(svbool_t, uint8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64offset_u64)))
svuint64_t svld1ub_gather_offset_u64(svbool_t, uint8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ub_gather_u64offset_s64)))
svint64_t svld1ub_gather_offset_s64(svbool_t, uint8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_index_u32)))
svuint32_t svld1uh_gather_index_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_index_u64)))
svuint64_t svld1uh_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_index_s32)))
svint32_t svld1uh_gather_index_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_index_s64)))
svint64_t svld1uh_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_offset_u32)))
svuint32_t svld1uh_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_offset_u64)))
svuint64_t svld1uh_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_offset_s32)))
svint32_t svld1uh_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_offset_s64)))
svint64_t svld1uh_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_u32)))
svuint32_t svld1uh_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_u64)))
svuint64_t svld1uh_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32base_s32)))
svint32_t svld1uh_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64base_s64)))
svint64_t svld1uh_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s32index_u32)))
svuint32_t svld1uh_gather_index_u32(svbool_t, uint16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s32index_s32)))
svint32_t svld1uh_gather_index_s32(svbool_t, uint16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32index_u32)))
svuint32_t svld1uh_gather_index_u32(svbool_t, uint16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32index_s32)))
svint32_t svld1uh_gather_index_s32(svbool_t, uint16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s64index_u64)))
svuint64_t svld1uh_gather_index_u64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s64index_s64)))
svint64_t svld1uh_gather_index_s64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64index_u64)))
svuint64_t svld1uh_gather_index_u64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64index_s64)))
svint64_t svld1uh_gather_index_s64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s32offset_u32)))
svuint32_t svld1uh_gather_offset_u32(svbool_t, uint16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s32offset_s32)))
svint32_t svld1uh_gather_offset_s32(svbool_t, uint16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32offset_u32)))
svuint32_t svld1uh_gather_offset_u32(svbool_t, uint16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u32offset_s32)))
svint32_t svld1uh_gather_offset_s32(svbool_t, uint16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s64offset_u64)))
svuint64_t svld1uh_gather_offset_u64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_s64offset_s64)))
svint64_t svld1uh_gather_offset_s64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64offset_u64)))
svuint64_t svld1uh_gather_offset_u64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uh_gather_u64offset_s64)))
svint64_t svld1uh_gather_offset_s64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_index_u64)))
svuint64_t svld1uw_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_index_s64)))
svint64_t svld1uw_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_offset_u64)))
svuint64_t svld1uw_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_offset_s64)))
svint64_t svld1uw_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_u64)))
svuint64_t svld1uw_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64base_s64)))
svint64_t svld1uw_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_s64index_u64)))
svuint64_t svld1uw_gather_index_u64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_s64index_s64)))
svint64_t svld1uw_gather_index_s64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64index_u64)))
svuint64_t svld1uw_gather_index_u64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64index_s64)))
svint64_t svld1uw_gather_index_s64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_s64offset_u64)))
svuint64_t svld1uw_gather_offset_u64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_s64offset_s64)))
svint64_t svld1uw_gather_offset_s64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64offset_u64)))
svuint64_t svld1uw_gather_offset_u64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1uw_gather_u64offset_s64)))
svint64_t svld1uw_gather_offset_s64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_u8)))
svuint8x2_t svld2(svbool_t, uint8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_u32)))
svuint32x2_t svld2(svbool_t, uint32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_u64)))
svuint64x2_t svld2(svbool_t, uint64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_u16)))
svuint16x2_t svld2(svbool_t, uint16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_s8)))
svint8x2_t svld2(svbool_t, int8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_f64)))
svfloat64x2_t svld2(svbool_t, float64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_f32)))
svfloat32x2_t svld2(svbool_t, float32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_f16)))
svfloat16x2_t svld2(svbool_t, float16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_s32)))
svint32x2_t svld2(svbool_t, int32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_s64)))
svint64x2_t svld2(svbool_t, int64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_s16)))
svint16x2_t svld2(svbool_t, int16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_u8)))
svuint8x2_t svld2_vnum(svbool_t, uint8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_u32)))
svuint32x2_t svld2_vnum(svbool_t, uint32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_u64)))
svuint64x2_t svld2_vnum(svbool_t, uint64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_u16)))
svuint16x2_t svld2_vnum(svbool_t, uint16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_s8)))
svint8x2_t svld2_vnum(svbool_t, int8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_f64)))
svfloat64x2_t svld2_vnum(svbool_t, float64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_f32)))
svfloat32x2_t svld2_vnum(svbool_t, float32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_f16)))
svfloat16x2_t svld2_vnum(svbool_t, float16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_s32)))
svint32x2_t svld2_vnum(svbool_t, int32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_s64)))
svint64x2_t svld2_vnum(svbool_t, int64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_s16)))
svint16x2_t svld2_vnum(svbool_t, int16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_u8)))
svuint8x3_t svld3(svbool_t, uint8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_u32)))
svuint32x3_t svld3(svbool_t, uint32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_u64)))
svuint64x3_t svld3(svbool_t, uint64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_u16)))
svuint16x3_t svld3(svbool_t, uint16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_s8)))
svint8x3_t svld3(svbool_t, int8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_f64)))
svfloat64x3_t svld3(svbool_t, float64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_f32)))
svfloat32x3_t svld3(svbool_t, float32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_f16)))
svfloat16x3_t svld3(svbool_t, float16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_s32)))
svint32x3_t svld3(svbool_t, int32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_s64)))
svint64x3_t svld3(svbool_t, int64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_s16)))
svint16x3_t svld3(svbool_t, int16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_u8)))
svuint8x3_t svld3_vnum(svbool_t, uint8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_u32)))
svuint32x3_t svld3_vnum(svbool_t, uint32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_u64)))
svuint64x3_t svld3_vnum(svbool_t, uint64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_u16)))
svuint16x3_t svld3_vnum(svbool_t, uint16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_s8)))
svint8x3_t svld3_vnum(svbool_t, int8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_f64)))
svfloat64x3_t svld3_vnum(svbool_t, float64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_f32)))
svfloat32x3_t svld3_vnum(svbool_t, float32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_f16)))
svfloat16x3_t svld3_vnum(svbool_t, float16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_s32)))
svint32x3_t svld3_vnum(svbool_t, int32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_s64)))
svint64x3_t svld3_vnum(svbool_t, int64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_s16)))
svint16x3_t svld3_vnum(svbool_t, int16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_u8)))
svuint8x4_t svld4(svbool_t, uint8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_u32)))
svuint32x4_t svld4(svbool_t, uint32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_u64)))
svuint64x4_t svld4(svbool_t, uint64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_u16)))
svuint16x4_t svld4(svbool_t, uint16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_s8)))
svint8x4_t svld4(svbool_t, int8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_f64)))
svfloat64x4_t svld4(svbool_t, float64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_f32)))
svfloat32x4_t svld4(svbool_t, float32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_f16)))
svfloat16x4_t svld4(svbool_t, float16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_s32)))
svint32x4_t svld4(svbool_t, int32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_s64)))
svint64x4_t svld4(svbool_t, int64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_s16)))
svint16x4_t svld4(svbool_t, int16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_u8)))
svuint8x4_t svld4_vnum(svbool_t, uint8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_u32)))
svuint32x4_t svld4_vnum(svbool_t, uint32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_u64)))
svuint64x4_t svld4_vnum(svbool_t, uint64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_u16)))
svuint16x4_t svld4_vnum(svbool_t, uint16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_s8)))
svint8x4_t svld4_vnum(svbool_t, int8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_f64)))
svfloat64x4_t svld4_vnum(svbool_t, float64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_f32)))
svfloat32x4_t svld4_vnum(svbool_t, float32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_f16)))
svfloat16x4_t svld4_vnum(svbool_t, float16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_s32)))
svint32x4_t svld4_vnum(svbool_t, int32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_s64)))
svint64x4_t svld4_vnum(svbool_t, int64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_s16)))
svint16x4_t svld4_vnum(svbool_t, int16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_u8)))
svuint8_t svldff1(svbool_t, uint8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_u32)))
svuint32_t svldff1(svbool_t, uint32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_u64)))
svuint64_t svldff1(svbool_t, uint64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_u16)))
svuint16_t svldff1(svbool_t, uint16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_s8)))
svint8_t svldff1(svbool_t, int8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_f64)))
svfloat64_t svldff1(svbool_t, float64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_f32)))
svfloat32_t svldff1(svbool_t, float32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_f16)))
svfloat16_t svldff1(svbool_t, float16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_s32)))
svint32_t svldff1(svbool_t, int32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_s64)))
svint64_t svldff1(svbool_t, int64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_s16)))
svint16_t svldff1(svbool_t, int16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_index_u32)))
svuint32_t svldff1_gather_index_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_index_u64)))
svuint64_t svldff1_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_index_f64)))
svfloat64_t svldff1_gather_index_f64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_index_f32)))
svfloat32_t svldff1_gather_index_f32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_index_s32)))
svint32_t svldff1_gather_index_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_index_s64)))
svint64_t svldff1_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_offset_u32)))
svuint32_t svldff1_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_offset_u64)))
svuint64_t svldff1_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_offset_f64)))
svfloat64_t svldff1_gather_offset_f64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_offset_f32)))
svfloat32_t svldff1_gather_offset_f32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_offset_s32)))
svint32_t svldff1_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_offset_s64)))
svint64_t svldff1_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_u32)))
svuint32_t svldff1_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_u64)))
svuint64_t svldff1_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_f64)))
svfloat64_t svldff1_gather_f64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_f32)))
svfloat32_t svldff1_gather_f32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32base_s32)))
svint32_t svldff1_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64base_s64)))
svint64_t svldff1_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32index_u32)))
svuint32_t svldff1_gather_index(svbool_t, uint32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32index_f32)))
svfloat32_t svldff1_gather_index(svbool_t, float32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32index_s32)))
svint32_t svldff1_gather_index(svbool_t, int32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32index_u32)))
svuint32_t svldff1_gather_index(svbool_t, uint32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32index_f32)))
svfloat32_t svldff1_gather_index(svbool_t, float32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32index_s32)))
svint32_t svldff1_gather_index(svbool_t, int32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64index_u64)))
svuint64_t svldff1_gather_index(svbool_t, uint64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64index_f64)))
svfloat64_t svldff1_gather_index(svbool_t, float64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64index_s64)))
svint64_t svldff1_gather_index(svbool_t, int64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64index_u64)))
svuint64_t svldff1_gather_index(svbool_t, uint64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64index_f64)))
svfloat64_t svldff1_gather_index(svbool_t, float64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64index_s64)))
svint64_t svldff1_gather_index(svbool_t, int64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32offset_u32)))
svuint32_t svldff1_gather_offset(svbool_t, uint32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32offset_f32)))
svfloat32_t svldff1_gather_offset(svbool_t, float32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s32offset_s32)))
svint32_t svldff1_gather_offset(svbool_t, int32_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32offset_u32)))
svuint32_t svldff1_gather_offset(svbool_t, uint32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32offset_f32)))
svfloat32_t svldff1_gather_offset(svbool_t, float32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u32offset_s32)))
svint32_t svldff1_gather_offset(svbool_t, int32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64offset_u64)))
svuint64_t svldff1_gather_offset(svbool_t, uint64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64offset_f64)))
svfloat64_t svldff1_gather_offset(svbool_t, float64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_s64offset_s64)))
svint64_t svldff1_gather_offset(svbool_t, int64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64offset_u64)))
svuint64_t svldff1_gather_offset(svbool_t, uint64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64offset_f64)))
svfloat64_t svldff1_gather_offset(svbool_t, float64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_gather_u64offset_s64)))
svint64_t svldff1_gather_offset(svbool_t, int64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_u8)))
svuint8_t svldff1_vnum(svbool_t, uint8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_u32)))
svuint32_t svldff1_vnum(svbool_t, uint32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_u64)))
svuint64_t svldff1_vnum(svbool_t, uint64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_u16)))
svuint16_t svldff1_vnum(svbool_t, uint16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_s8)))
svint8_t svldff1_vnum(svbool_t, int8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_f64)))
svfloat64_t svldff1_vnum(svbool_t, float64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_f32)))
svfloat32_t svldff1_vnum(svbool_t, float32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_f16)))
svfloat16_t svldff1_vnum(svbool_t, float16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_s32)))
svint32_t svldff1_vnum(svbool_t, int32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_s64)))
svint64_t svldff1_vnum(svbool_t, int64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_s16)))
svint16_t svldff1_vnum(svbool_t, int16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32base_offset_u32)))
svuint32_t svldff1sb_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64base_offset_u64)))
svuint64_t svldff1sb_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32base_offset_s32)))
svint32_t svldff1sb_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64base_offset_s64)))
svint64_t svldff1sb_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32base_u32)))
svuint32_t svldff1sb_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64base_u64)))
svuint64_t svldff1sb_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32base_s32)))
svint32_t svldff1sb_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64base_s64)))
svint64_t svldff1sb_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_s32offset_u32)))
svuint32_t svldff1sb_gather_offset_u32(svbool_t, int8_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_s32offset_s32)))
svint32_t svldff1sb_gather_offset_s32(svbool_t, int8_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32offset_u32)))
svuint32_t svldff1sb_gather_offset_u32(svbool_t, int8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u32offset_s32)))
svint32_t svldff1sb_gather_offset_s32(svbool_t, int8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_s64offset_u64)))
svuint64_t svldff1sb_gather_offset_u64(svbool_t, int8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_s64offset_s64)))
svint64_t svldff1sb_gather_offset_s64(svbool_t, int8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64offset_u64)))
svuint64_t svldff1sb_gather_offset_u64(svbool_t, int8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sb_gather_u64offset_s64)))
svint64_t svldff1sb_gather_offset_s64(svbool_t, int8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_index_u32)))
svuint32_t svldff1sh_gather_index_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_index_u64)))
svuint64_t svldff1sh_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_index_s32)))
svint32_t svldff1sh_gather_index_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_index_s64)))
svint64_t svldff1sh_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_offset_u32)))
svuint32_t svldff1sh_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_offset_u64)))
svuint64_t svldff1sh_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_offset_s32)))
svint32_t svldff1sh_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_offset_s64)))
svint64_t svldff1sh_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_u32)))
svuint32_t svldff1sh_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_u64)))
svuint64_t svldff1sh_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32base_s32)))
svint32_t svldff1sh_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64base_s64)))
svint64_t svldff1sh_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s32index_u32)))
svuint32_t svldff1sh_gather_index_u32(svbool_t, int16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s32index_s32)))
svint32_t svldff1sh_gather_index_s32(svbool_t, int16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32index_u32)))
svuint32_t svldff1sh_gather_index_u32(svbool_t, int16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32index_s32)))
svint32_t svldff1sh_gather_index_s32(svbool_t, int16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s64index_u64)))
svuint64_t svldff1sh_gather_index_u64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s64index_s64)))
svint64_t svldff1sh_gather_index_s64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64index_u64)))
svuint64_t svldff1sh_gather_index_u64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64index_s64)))
svint64_t svldff1sh_gather_index_s64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s32offset_u32)))
svuint32_t svldff1sh_gather_offset_u32(svbool_t, int16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s32offset_s32)))
svint32_t svldff1sh_gather_offset_s32(svbool_t, int16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32offset_u32)))
svuint32_t svldff1sh_gather_offset_u32(svbool_t, int16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u32offset_s32)))
svint32_t svldff1sh_gather_offset_s32(svbool_t, int16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s64offset_u64)))
svuint64_t svldff1sh_gather_offset_u64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_s64offset_s64)))
svint64_t svldff1sh_gather_offset_s64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64offset_u64)))
svuint64_t svldff1sh_gather_offset_u64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sh_gather_u64offset_s64)))
svint64_t svldff1sh_gather_offset_s64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_index_u64)))
svuint64_t svldff1sw_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_index_s64)))
svint64_t svldff1sw_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_offset_u64)))
svuint64_t svldff1sw_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_offset_s64)))
svint64_t svldff1sw_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_u64)))
svuint64_t svldff1sw_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64base_s64)))
svint64_t svldff1sw_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_s64index_u64)))
svuint64_t svldff1sw_gather_index_u64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_s64index_s64)))
svint64_t svldff1sw_gather_index_s64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64index_u64)))
svuint64_t svldff1sw_gather_index_u64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64index_s64)))
svint64_t svldff1sw_gather_index_s64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_s64offset_u64)))
svuint64_t svldff1sw_gather_offset_u64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_s64offset_s64)))
svint64_t svldff1sw_gather_offset_s64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64offset_u64)))
svuint64_t svldff1sw_gather_offset_u64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1sw_gather_u64offset_s64)))
svint64_t svldff1sw_gather_offset_s64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32base_offset_u32)))
svuint32_t svldff1ub_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64base_offset_u64)))
svuint64_t svldff1ub_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32base_offset_s32)))
svint32_t svldff1ub_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64base_offset_s64)))
svint64_t svldff1ub_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32base_u32)))
svuint32_t svldff1ub_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64base_u64)))
svuint64_t svldff1ub_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32base_s32)))
svint32_t svldff1ub_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64base_s64)))
svint64_t svldff1ub_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_s32offset_u32)))
svuint32_t svldff1ub_gather_offset_u32(svbool_t, uint8_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_s32offset_s32)))
svint32_t svldff1ub_gather_offset_s32(svbool_t, uint8_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32offset_u32)))
svuint32_t svldff1ub_gather_offset_u32(svbool_t, uint8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u32offset_s32)))
svint32_t svldff1ub_gather_offset_s32(svbool_t, uint8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_s64offset_u64)))
svuint64_t svldff1ub_gather_offset_u64(svbool_t, uint8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_s64offset_s64)))
svint64_t svldff1ub_gather_offset_s64(svbool_t, uint8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64offset_u64)))
svuint64_t svldff1ub_gather_offset_u64(svbool_t, uint8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1ub_gather_u64offset_s64)))
svint64_t svldff1ub_gather_offset_s64(svbool_t, uint8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_index_u32)))
svuint32_t svldff1uh_gather_index_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_index_u64)))
svuint64_t svldff1uh_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_index_s32)))
svint32_t svldff1uh_gather_index_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_index_s64)))
svint64_t svldff1uh_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_offset_u32)))
svuint32_t svldff1uh_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_offset_u64)))
svuint64_t svldff1uh_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_offset_s32)))
svint32_t svldff1uh_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_offset_s64)))
svint64_t svldff1uh_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_u32)))
svuint32_t svldff1uh_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_u64)))
svuint64_t svldff1uh_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32base_s32)))
svint32_t svldff1uh_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64base_s64)))
svint64_t svldff1uh_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s32index_u32)))
svuint32_t svldff1uh_gather_index_u32(svbool_t, uint16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s32index_s32)))
svint32_t svldff1uh_gather_index_s32(svbool_t, uint16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32index_u32)))
svuint32_t svldff1uh_gather_index_u32(svbool_t, uint16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32index_s32)))
svint32_t svldff1uh_gather_index_s32(svbool_t, uint16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s64index_u64)))
svuint64_t svldff1uh_gather_index_u64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s64index_s64)))
svint64_t svldff1uh_gather_index_s64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64index_u64)))
svuint64_t svldff1uh_gather_index_u64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64index_s64)))
svint64_t svldff1uh_gather_index_s64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s32offset_u32)))
svuint32_t svldff1uh_gather_offset_u32(svbool_t, uint16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s32offset_s32)))
svint32_t svldff1uh_gather_offset_s32(svbool_t, uint16_t const *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32offset_u32)))
svuint32_t svldff1uh_gather_offset_u32(svbool_t, uint16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u32offset_s32)))
svint32_t svldff1uh_gather_offset_s32(svbool_t, uint16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s64offset_u64)))
svuint64_t svldff1uh_gather_offset_u64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_s64offset_s64)))
svint64_t svldff1uh_gather_offset_s64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64offset_u64)))
svuint64_t svldff1uh_gather_offset_u64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uh_gather_u64offset_s64)))
svint64_t svldff1uh_gather_offset_s64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_index_u64)))
svuint64_t svldff1uw_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_index_s64)))
svint64_t svldff1uw_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_offset_u64)))
svuint64_t svldff1uw_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_offset_s64)))
svint64_t svldff1uw_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_u64)))
svuint64_t svldff1uw_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64base_s64)))
svint64_t svldff1uw_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_s64index_u64)))
svuint64_t svldff1uw_gather_index_u64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_s64index_s64)))
svint64_t svldff1uw_gather_index_s64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64index_u64)))
svuint64_t svldff1uw_gather_index_u64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64index_s64)))
svint64_t svldff1uw_gather_index_s64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_s64offset_u64)))
svuint64_t svldff1uw_gather_offset_u64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_s64offset_s64)))
svint64_t svldff1uw_gather_offset_s64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64offset_u64)))
svuint64_t svldff1uw_gather_offset_u64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1uw_gather_u64offset_s64)))
svint64_t svldff1uw_gather_offset_s64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_u8)))
svuint8_t svldnf1(svbool_t, uint8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_u32)))
svuint32_t svldnf1(svbool_t, uint32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_u64)))
svuint64_t svldnf1(svbool_t, uint64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_u16)))
svuint16_t svldnf1(svbool_t, uint16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_s8)))
svint8_t svldnf1(svbool_t, int8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_f64)))
svfloat64_t svldnf1(svbool_t, float64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_f32)))
svfloat32_t svldnf1(svbool_t, float32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_f16)))
svfloat16_t svldnf1(svbool_t, float16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_s32)))
svint32_t svldnf1(svbool_t, int32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_s64)))
svint64_t svldnf1(svbool_t, int64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_s16)))
svint16_t svldnf1(svbool_t, int16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_u8)))
svuint8_t svldnf1_vnum(svbool_t, uint8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_u32)))
svuint32_t svldnf1_vnum(svbool_t, uint32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_u64)))
svuint64_t svldnf1_vnum(svbool_t, uint64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_u16)))
svuint16_t svldnf1_vnum(svbool_t, uint16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_s8)))
svint8_t svldnf1_vnum(svbool_t, int8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_f64)))
svfloat64_t svldnf1_vnum(svbool_t, float64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_f32)))
svfloat32_t svldnf1_vnum(svbool_t, float32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_f16)))
svfloat16_t svldnf1_vnum(svbool_t, float16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_s32)))
svint32_t svldnf1_vnum(svbool_t, int32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_s64)))
svint64_t svldnf1_vnum(svbool_t, int64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_s16)))
svint16_t svldnf1_vnum(svbool_t, int16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_u8)))
svuint8_t svldnt1(svbool_t, uint8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_u32)))
svuint32_t svldnt1(svbool_t, uint32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_u64)))
svuint64_t svldnt1(svbool_t, uint64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_u16)))
svuint16_t svldnt1(svbool_t, uint16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_s8)))
svint8_t svldnt1(svbool_t, int8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_f64)))
svfloat64_t svldnt1(svbool_t, float64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_f32)))
svfloat32_t svldnt1(svbool_t, float32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_f16)))
svfloat16_t svldnt1(svbool_t, float16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_s32)))
svint32_t svldnt1(svbool_t, int32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_s64)))
svint64_t svldnt1(svbool_t, int64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_s16)))
svint16_t svldnt1(svbool_t, int16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_u8)))
svuint8_t svldnt1_vnum(svbool_t, uint8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_u32)))
svuint32_t svldnt1_vnum(svbool_t, uint32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_u64)))
svuint64_t svldnt1_vnum(svbool_t, uint64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_u16)))
svuint16_t svldnt1_vnum(svbool_t, uint16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_s8)))
svint8_t svldnt1_vnum(svbool_t, int8_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_f64)))
svfloat64_t svldnt1_vnum(svbool_t, float64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_f32)))
svfloat32_t svldnt1_vnum(svbool_t, float32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_f16)))
svfloat16_t svldnt1_vnum(svbool_t, float16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_s32)))
svint32_t svldnt1_vnum(svbool_t, int32_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_s64)))
svint64_t svldnt1_vnum(svbool_t, int64_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_s16)))
svint16_t svldnt1_vnum(svbool_t, int16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_u8)))
uint64_t svlen(svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_u32)))
uint64_t svlen(svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_u64)))
uint64_t svlen(svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_u16)))
uint64_t svlen(svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_s8)))
uint64_t svlen(svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_f64)))
uint64_t svlen(svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_f32)))
uint64_t svlen(svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_f16)))
uint64_t svlen(svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_s32)))
uint64_t svlen(svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_s64)))
uint64_t svlen(svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_s16)))
uint64_t svlen(svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u8_m)))
svuint8_t svlsl_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u32_m)))
svuint32_t svlsl_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u64_m)))
svuint64_t svlsl_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u16_m)))
svuint16_t svlsl_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s8_m)))
svint8_t svlsl_m(svbool_t, svint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s32_m)))
svint32_t svlsl_m(svbool_t, svint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s64_m)))
svint64_t svlsl_m(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s16_m)))
svint16_t svlsl_m(svbool_t, svint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u8_x)))
svuint8_t svlsl_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u32_x)))
svuint32_t svlsl_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u64_x)))
svuint64_t svlsl_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u16_x)))
svuint16_t svlsl_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s8_x)))
svint8_t svlsl_x(svbool_t, svint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s32_x)))
svint32_t svlsl_x(svbool_t, svint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s64_x)))
svint64_t svlsl_x(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s16_x)))
svint16_t svlsl_x(svbool_t, svint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u8_z)))
svuint8_t svlsl_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u32_z)))
svuint32_t svlsl_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u64_z)))
svuint64_t svlsl_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_u16_z)))
svuint16_t svlsl_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s8_z)))
svint8_t svlsl_z(svbool_t, svint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s32_z)))
svint32_t svlsl_z(svbool_t, svint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s64_z)))
svint64_t svlsl_z(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_n_s16_z)))
svint16_t svlsl_z(svbool_t, svint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u8_m)))
svuint8_t svlsl_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u32_m)))
svuint32_t svlsl_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u64_m)))
svuint64_t svlsl_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u16_m)))
svuint16_t svlsl_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s8_m)))
svint8_t svlsl_m(svbool_t, svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s32_m)))
svint32_t svlsl_m(svbool_t, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s64_m)))
svint64_t svlsl_m(svbool_t, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s16_m)))
svint16_t svlsl_m(svbool_t, svint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u8_x)))
svuint8_t svlsl_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u32_x)))
svuint32_t svlsl_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u64_x)))
svuint64_t svlsl_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u16_x)))
svuint16_t svlsl_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s8_x)))
svint8_t svlsl_x(svbool_t, svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s32_x)))
svint32_t svlsl_x(svbool_t, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s64_x)))
svint64_t svlsl_x(svbool_t, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s16_x)))
svint16_t svlsl_x(svbool_t, svint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u8_z)))
svuint8_t svlsl_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u32_z)))
svuint32_t svlsl_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u64_z)))
svuint64_t svlsl_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_u16_z)))
svuint16_t svlsl_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s8_z)))
svint8_t svlsl_z(svbool_t, svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s32_z)))
svint32_t svlsl_z(svbool_t, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s64_z)))
svint64_t svlsl_z(svbool_t, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_s16_z)))
svint16_t svlsl_z(svbool_t, svint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u8_m)))
svuint8_t svlsl_wide_m(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u32_m)))
svuint32_t svlsl_wide_m(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u16_m)))
svuint16_t svlsl_wide_m(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s8_m)))
svint8_t svlsl_wide_m(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s32_m)))
svint32_t svlsl_wide_m(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s16_m)))
svint16_t svlsl_wide_m(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u8_x)))
svuint8_t svlsl_wide_x(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u32_x)))
svuint32_t svlsl_wide_x(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u16_x)))
svuint16_t svlsl_wide_x(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s8_x)))
svint8_t svlsl_wide_x(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s32_x)))
svint32_t svlsl_wide_x(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s16_x)))
svint16_t svlsl_wide_x(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u8_z)))
svuint8_t svlsl_wide_z(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u32_z)))
svuint32_t svlsl_wide_z(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_u16_z)))
svuint16_t svlsl_wide_z(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s8_z)))
svint8_t svlsl_wide_z(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s32_z)))
svint32_t svlsl_wide_z(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_n_s16_z)))
svint16_t svlsl_wide_z(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u8_m)))
svuint8_t svlsl_wide_m(svbool_t, svuint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u32_m)))
svuint32_t svlsl_wide_m(svbool_t, svuint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u16_m)))
svuint16_t svlsl_wide_m(svbool_t, svuint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s8_m)))
svint8_t svlsl_wide_m(svbool_t, svint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s32_m)))
svint32_t svlsl_wide_m(svbool_t, svint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s16_m)))
svint16_t svlsl_wide_m(svbool_t, svint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u8_x)))
svuint8_t svlsl_wide_x(svbool_t, svuint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u32_x)))
svuint32_t svlsl_wide_x(svbool_t, svuint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u16_x)))
svuint16_t svlsl_wide_x(svbool_t, svuint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s8_x)))
svint8_t svlsl_wide_x(svbool_t, svint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s32_x)))
svint32_t svlsl_wide_x(svbool_t, svint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s16_x)))
svint16_t svlsl_wide_x(svbool_t, svint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u8_z)))
svuint8_t svlsl_wide_z(svbool_t, svuint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u32_z)))
svuint32_t svlsl_wide_z(svbool_t, svuint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_u16_z)))
svuint16_t svlsl_wide_z(svbool_t, svuint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s8_z)))
svint8_t svlsl_wide_z(svbool_t, svint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s32_z)))
svint32_t svlsl_wide_z(svbool_t, svint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsl_wide_s16_z)))
svint16_t svlsl_wide_z(svbool_t, svint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u8_m)))
svuint8_t svlsr_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u32_m)))
svuint32_t svlsr_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u64_m)))
svuint64_t svlsr_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u16_m)))
svuint16_t svlsr_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u8_x)))
svuint8_t svlsr_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u32_x)))
svuint32_t svlsr_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u64_x)))
svuint64_t svlsr_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u16_x)))
svuint16_t svlsr_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u8_z)))
svuint8_t svlsr_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u32_z)))
svuint32_t svlsr_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u64_z)))
svuint64_t svlsr_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_n_u16_z)))
svuint16_t svlsr_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u8_m)))
svuint8_t svlsr_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u32_m)))
svuint32_t svlsr_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u64_m)))
svuint64_t svlsr_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u16_m)))
svuint16_t svlsr_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u8_x)))
svuint8_t svlsr_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u32_x)))
svuint32_t svlsr_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u64_x)))
svuint64_t svlsr_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u16_x)))
svuint16_t svlsr_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u8_z)))
svuint8_t svlsr_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u32_z)))
svuint32_t svlsr_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u64_z)))
svuint64_t svlsr_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_u16_z)))
svuint16_t svlsr_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u8_m)))
svuint8_t svlsr_wide_m(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u32_m)))
svuint32_t svlsr_wide_m(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u16_m)))
svuint16_t svlsr_wide_m(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u8_x)))
svuint8_t svlsr_wide_x(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u32_x)))
svuint32_t svlsr_wide_x(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u16_x)))
svuint16_t svlsr_wide_x(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u8_z)))
svuint8_t svlsr_wide_z(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u32_z)))
svuint32_t svlsr_wide_z(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_n_u16_z)))
svuint16_t svlsr_wide_z(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u8_m)))
svuint8_t svlsr_wide_m(svbool_t, svuint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u32_m)))
svuint32_t svlsr_wide_m(svbool_t, svuint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u16_m)))
svuint16_t svlsr_wide_m(svbool_t, svuint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u8_x)))
svuint8_t svlsr_wide_x(svbool_t, svuint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u32_x)))
svuint32_t svlsr_wide_x(svbool_t, svuint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u16_x)))
svuint16_t svlsr_wide_x(svbool_t, svuint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u8_z)))
svuint8_t svlsr_wide_z(svbool_t, svuint8_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u32_z)))
svuint32_t svlsr_wide_z(svbool_t, svuint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlsr_wide_u16_z)))
svuint16_t svlsr_wide_z(svbool_t, svuint16_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f64_m)))
svfloat64_t svmad_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f32_m)))
svfloat32_t svmad_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f16_m)))
svfloat16_t svmad_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f64_x)))
svfloat64_t svmad_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f32_x)))
svfloat32_t svmad_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f16_x)))
svfloat16_t svmad_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f64_z)))
svfloat64_t svmad_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f32_z)))
svfloat32_t svmad_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_f16_z)))
svfloat16_t svmad_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u8_m)))
svuint8_t svmad_m(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u32_m)))
svuint32_t svmad_m(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u64_m)))
svuint64_t svmad_m(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u16_m)))
svuint16_t svmad_m(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s8_m)))
svint8_t svmad_m(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s32_m)))
svint32_t svmad_m(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s64_m)))
svint64_t svmad_m(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s16_m)))
svint16_t svmad_m(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u8_x)))
svuint8_t svmad_x(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u32_x)))
svuint32_t svmad_x(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u64_x)))
svuint64_t svmad_x(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u16_x)))
svuint16_t svmad_x(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s8_x)))
svint8_t svmad_x(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s32_x)))
svint32_t svmad_x(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s64_x)))
svint64_t svmad_x(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s16_x)))
svint16_t svmad_x(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u8_z)))
svuint8_t svmad_z(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u32_z)))
svuint32_t svmad_z(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u64_z)))
svuint64_t svmad_z(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_u16_z)))
svuint16_t svmad_z(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s8_z)))
svint8_t svmad_z(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s32_z)))
svint32_t svmad_z(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s64_z)))
svint64_t svmad_z(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_n_s16_z)))
svint16_t svmad_z(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f64_m)))
svfloat64_t svmad_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f32_m)))
svfloat32_t svmad_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f16_m)))
svfloat16_t svmad_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f64_x)))
svfloat64_t svmad_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f32_x)))
svfloat32_t svmad_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f16_x)))
svfloat16_t svmad_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f64_z)))
svfloat64_t svmad_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f32_z)))
svfloat32_t svmad_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_f16_z)))
svfloat16_t svmad_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u8_m)))
svuint8_t svmad_m(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u32_m)))
svuint32_t svmad_m(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u64_m)))
svuint64_t svmad_m(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u16_m)))
svuint16_t svmad_m(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s8_m)))
svint8_t svmad_m(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s32_m)))
svint32_t svmad_m(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s64_m)))
svint64_t svmad_m(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s16_m)))
svint16_t svmad_m(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u8_x)))
svuint8_t svmad_x(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u32_x)))
svuint32_t svmad_x(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u64_x)))
svuint64_t svmad_x(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u16_x)))
svuint16_t svmad_x(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s8_x)))
svint8_t svmad_x(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s32_x)))
svint32_t svmad_x(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s64_x)))
svint64_t svmad_x(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s16_x)))
svint16_t svmad_x(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u8_z)))
svuint8_t svmad_z(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u32_z)))
svuint32_t svmad_z(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u64_z)))
svuint64_t svmad_z(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_u16_z)))
svuint16_t svmad_z(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s8_z)))
svint8_t svmad_z(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s32_z)))
svint32_t svmad_z(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s64_z)))
svint64_t svmad_z(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmad_s16_z)))
svint16_t svmad_z(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f64_m)))
svfloat64_t svmax_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f32_m)))
svfloat32_t svmax_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f16_m)))
svfloat16_t svmax_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f64_x)))
svfloat64_t svmax_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f32_x)))
svfloat32_t svmax_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f16_x)))
svfloat16_t svmax_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f64_z)))
svfloat64_t svmax_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f32_z)))
svfloat32_t svmax_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_f16_z)))
svfloat16_t svmax_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s8_m)))
svint8_t svmax_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s32_m)))
svint32_t svmax_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s64_m)))
svint64_t svmax_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s16_m)))
svint16_t svmax_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s8_x)))
svint8_t svmax_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s32_x)))
svint32_t svmax_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s64_x)))
svint64_t svmax_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s16_x)))
svint16_t svmax_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s8_z)))
svint8_t svmax_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s32_z)))
svint32_t svmax_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s64_z)))
svint64_t svmax_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_s16_z)))
svint16_t svmax_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u8_m)))
svuint8_t svmax_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u32_m)))
svuint32_t svmax_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u64_m)))
svuint64_t svmax_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u16_m)))
svuint16_t svmax_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u8_x)))
svuint8_t svmax_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u32_x)))
svuint32_t svmax_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u64_x)))
svuint64_t svmax_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u16_x)))
svuint16_t svmax_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u8_z)))
svuint8_t svmax_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u32_z)))
svuint32_t svmax_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u64_z)))
svuint64_t svmax_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_n_u16_z)))
svuint16_t svmax_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f64_m)))
svfloat64_t svmax_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f32_m)))
svfloat32_t svmax_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f16_m)))
svfloat16_t svmax_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f64_x)))
svfloat64_t svmax_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f32_x)))
svfloat32_t svmax_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f16_x)))
svfloat16_t svmax_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f64_z)))
svfloat64_t svmax_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f32_z)))
svfloat32_t svmax_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_f16_z)))
svfloat16_t svmax_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s8_m)))
svint8_t svmax_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s32_m)))
svint32_t svmax_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s64_m)))
svint64_t svmax_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s16_m)))
svint16_t svmax_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s8_x)))
svint8_t svmax_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s32_x)))
svint32_t svmax_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s64_x)))
svint64_t svmax_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s16_x)))
svint16_t svmax_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s8_z)))
svint8_t svmax_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s32_z)))
svint32_t svmax_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s64_z)))
svint64_t svmax_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_s16_z)))
svint16_t svmax_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u8_m)))
svuint8_t svmax_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u32_m)))
svuint32_t svmax_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u64_m)))
svuint64_t svmax_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u16_m)))
svuint16_t svmax_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u8_x)))
svuint8_t svmax_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u32_x)))
svuint32_t svmax_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u64_x)))
svuint64_t svmax_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u16_x)))
svuint16_t svmax_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u8_z)))
svuint8_t svmax_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u32_z)))
svuint32_t svmax_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u64_z)))
svuint64_t svmax_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmax_u16_z)))
svuint16_t svmax_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f64_m)))
svfloat64_t svmaxnm_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f32_m)))
svfloat32_t svmaxnm_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f16_m)))
svfloat16_t svmaxnm_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f64_x)))
svfloat64_t svmaxnm_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f32_x)))
svfloat32_t svmaxnm_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f16_x)))
svfloat16_t svmaxnm_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f64_z)))
svfloat64_t svmaxnm_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f32_z)))
svfloat32_t svmaxnm_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_n_f16_z)))
svfloat16_t svmaxnm_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f64_m)))
svfloat64_t svmaxnm_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f32_m)))
svfloat32_t svmaxnm_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f16_m)))
svfloat16_t svmaxnm_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f64_x)))
svfloat64_t svmaxnm_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f32_x)))
svfloat32_t svmaxnm_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f16_x)))
svfloat16_t svmaxnm_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f64_z)))
svfloat64_t svmaxnm_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f32_z)))
svfloat32_t svmaxnm_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnm_f16_z)))
svfloat16_t svmaxnm_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmv_f64)))
float64_t svmaxnmv(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmv_f32)))
float32_t svmaxnmv(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmv_f16)))
float16_t svmaxnmv(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_f64)))
float64_t svmaxv(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_f32)))
float32_t svmaxv(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_f16)))
float16_t svmaxv(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_s8)))
int8_t svmaxv(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_s32)))
int32_t svmaxv(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_s64)))
int64_t svmaxv(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_s16)))
int16_t svmaxv(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_u8)))
uint8_t svmaxv(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_u32)))
uint32_t svmaxv(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_u64)))
uint64_t svmaxv(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxv_u16)))
uint16_t svmaxv(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f64_m)))
svfloat64_t svmin_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f32_m)))
svfloat32_t svmin_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f16_m)))
svfloat16_t svmin_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f64_x)))
svfloat64_t svmin_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f32_x)))
svfloat32_t svmin_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f16_x)))
svfloat16_t svmin_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f64_z)))
svfloat64_t svmin_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f32_z)))
svfloat32_t svmin_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_f16_z)))
svfloat16_t svmin_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s8_m)))
svint8_t svmin_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s32_m)))
svint32_t svmin_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s64_m)))
svint64_t svmin_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s16_m)))
svint16_t svmin_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s8_x)))
svint8_t svmin_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s32_x)))
svint32_t svmin_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s64_x)))
svint64_t svmin_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s16_x)))
svint16_t svmin_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s8_z)))
svint8_t svmin_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s32_z)))
svint32_t svmin_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s64_z)))
svint64_t svmin_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_s16_z)))
svint16_t svmin_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u8_m)))
svuint8_t svmin_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u32_m)))
svuint32_t svmin_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u64_m)))
svuint64_t svmin_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u16_m)))
svuint16_t svmin_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u8_x)))
svuint8_t svmin_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u32_x)))
svuint32_t svmin_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u64_x)))
svuint64_t svmin_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u16_x)))
svuint16_t svmin_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u8_z)))
svuint8_t svmin_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u32_z)))
svuint32_t svmin_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u64_z)))
svuint64_t svmin_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_n_u16_z)))
svuint16_t svmin_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f64_m)))
svfloat64_t svmin_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f32_m)))
svfloat32_t svmin_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f16_m)))
svfloat16_t svmin_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f64_x)))
svfloat64_t svmin_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f32_x)))
svfloat32_t svmin_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f16_x)))
svfloat16_t svmin_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f64_z)))
svfloat64_t svmin_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f32_z)))
svfloat32_t svmin_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_f16_z)))
svfloat16_t svmin_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s8_m)))
svint8_t svmin_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s32_m)))
svint32_t svmin_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s64_m)))
svint64_t svmin_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s16_m)))
svint16_t svmin_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s8_x)))
svint8_t svmin_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s32_x)))
svint32_t svmin_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s64_x)))
svint64_t svmin_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s16_x)))
svint16_t svmin_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s8_z)))
svint8_t svmin_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s32_z)))
svint32_t svmin_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s64_z)))
svint64_t svmin_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_s16_z)))
svint16_t svmin_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u8_m)))
svuint8_t svmin_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u32_m)))
svuint32_t svmin_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u64_m)))
svuint64_t svmin_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u16_m)))
svuint16_t svmin_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u8_x)))
svuint8_t svmin_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u32_x)))
svuint32_t svmin_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u64_x)))
svuint64_t svmin_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u16_x)))
svuint16_t svmin_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u8_z)))
svuint8_t svmin_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u32_z)))
svuint32_t svmin_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u64_z)))
svuint64_t svmin_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmin_u16_z)))
svuint16_t svmin_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f64_m)))
svfloat64_t svminnm_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f32_m)))
svfloat32_t svminnm_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f16_m)))
svfloat16_t svminnm_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f64_x)))
svfloat64_t svminnm_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f32_x)))
svfloat32_t svminnm_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f16_x)))
svfloat16_t svminnm_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f64_z)))
svfloat64_t svminnm_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f32_z)))
svfloat32_t svminnm_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_n_f16_z)))
svfloat16_t svminnm_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f64_m)))
svfloat64_t svminnm_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f32_m)))
svfloat32_t svminnm_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f16_m)))
svfloat16_t svminnm_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f64_x)))
svfloat64_t svminnm_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f32_x)))
svfloat32_t svminnm_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f16_x)))
svfloat16_t svminnm_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f64_z)))
svfloat64_t svminnm_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f32_z)))
svfloat32_t svminnm_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnm_f16_z)))
svfloat16_t svminnm_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmv_f64)))
float64_t svminnmv(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmv_f32)))
float32_t svminnmv(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmv_f16)))
float16_t svminnmv(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_f64)))
float64_t svminv(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_f32)))
float32_t svminv(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_f16)))
float16_t svminv(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_s8)))
int8_t svminv(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_s32)))
int32_t svminv(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_s64)))
int64_t svminv(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_s16)))
int16_t svminv(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_u8)))
uint8_t svminv(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_u32)))
uint32_t svminv(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_u64)))
uint64_t svminv(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminv_u16)))
uint16_t svminv(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f64_m)))
svfloat64_t svmla_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f32_m)))
svfloat32_t svmla_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f16_m)))
svfloat16_t svmla_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f64_x)))
svfloat64_t svmla_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f32_x)))
svfloat32_t svmla_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f16_x)))
svfloat16_t svmla_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f64_z)))
svfloat64_t svmla_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f32_z)))
svfloat32_t svmla_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_f16_z)))
svfloat16_t svmla_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u8_m)))
svuint8_t svmla_m(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u32_m)))
svuint32_t svmla_m(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u64_m)))
svuint64_t svmla_m(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u16_m)))
svuint16_t svmla_m(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s8_m)))
svint8_t svmla_m(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s32_m)))
svint32_t svmla_m(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s64_m)))
svint64_t svmla_m(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s16_m)))
svint16_t svmla_m(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u8_x)))
svuint8_t svmla_x(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u32_x)))
svuint32_t svmla_x(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u64_x)))
svuint64_t svmla_x(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u16_x)))
svuint16_t svmla_x(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s8_x)))
svint8_t svmla_x(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s32_x)))
svint32_t svmla_x(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s64_x)))
svint64_t svmla_x(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s16_x)))
svint16_t svmla_x(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u8_z)))
svuint8_t svmla_z(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u32_z)))
svuint32_t svmla_z(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u64_z)))
svuint64_t svmla_z(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_u16_z)))
svuint16_t svmla_z(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s8_z)))
svint8_t svmla_z(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s32_z)))
svint32_t svmla_z(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s64_z)))
svint64_t svmla_z(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_n_s16_z)))
svint16_t svmla_z(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f64_m)))
svfloat64_t svmla_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f32_m)))
svfloat32_t svmla_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f16_m)))
svfloat16_t svmla_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f64_x)))
svfloat64_t svmla_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f32_x)))
svfloat32_t svmla_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f16_x)))
svfloat16_t svmla_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f64_z)))
svfloat64_t svmla_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f32_z)))
svfloat32_t svmla_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_f16_z)))
svfloat16_t svmla_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u8_m)))
svuint8_t svmla_m(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u32_m)))
svuint32_t svmla_m(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u64_m)))
svuint64_t svmla_m(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u16_m)))
svuint16_t svmla_m(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s8_m)))
svint8_t svmla_m(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s32_m)))
svint32_t svmla_m(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s64_m)))
svint64_t svmla_m(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s16_m)))
svint16_t svmla_m(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u8_x)))
svuint8_t svmla_x(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u32_x)))
svuint32_t svmla_x(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u64_x)))
svuint64_t svmla_x(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u16_x)))
svuint16_t svmla_x(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s8_x)))
svint8_t svmla_x(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s32_x)))
svint32_t svmla_x(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s64_x)))
svint64_t svmla_x(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s16_x)))
svint16_t svmla_x(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u8_z)))
svuint8_t svmla_z(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u32_z)))
svuint32_t svmla_z(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u64_z)))
svuint64_t svmla_z(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_u16_z)))
svuint16_t svmla_z(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s8_z)))
svint8_t svmla_z(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s32_z)))
svint32_t svmla_z(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s64_z)))
svint64_t svmla_z(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_s16_z)))
svint16_t svmla_z(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_f64)))
svfloat64_t svmla_lane(svfloat64_t, svfloat64_t, svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_f32)))
svfloat32_t svmla_lane(svfloat32_t, svfloat32_t, svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_f16)))
svfloat16_t svmla_lane(svfloat16_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f64_m)))
svfloat64_t svmls_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f32_m)))
svfloat32_t svmls_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f16_m)))
svfloat16_t svmls_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f64_x)))
svfloat64_t svmls_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f32_x)))
svfloat32_t svmls_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f16_x)))
svfloat16_t svmls_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f64_z)))
svfloat64_t svmls_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f32_z)))
svfloat32_t svmls_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_f16_z)))
svfloat16_t svmls_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u8_m)))
svuint8_t svmls_m(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u32_m)))
svuint32_t svmls_m(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u64_m)))
svuint64_t svmls_m(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u16_m)))
svuint16_t svmls_m(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s8_m)))
svint8_t svmls_m(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s32_m)))
svint32_t svmls_m(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s64_m)))
svint64_t svmls_m(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s16_m)))
svint16_t svmls_m(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u8_x)))
svuint8_t svmls_x(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u32_x)))
svuint32_t svmls_x(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u64_x)))
svuint64_t svmls_x(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u16_x)))
svuint16_t svmls_x(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s8_x)))
svint8_t svmls_x(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s32_x)))
svint32_t svmls_x(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s64_x)))
svint64_t svmls_x(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s16_x)))
svint16_t svmls_x(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u8_z)))
svuint8_t svmls_z(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u32_z)))
svuint32_t svmls_z(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u64_z)))
svuint64_t svmls_z(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_u16_z)))
svuint16_t svmls_z(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s8_z)))
svint8_t svmls_z(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s32_z)))
svint32_t svmls_z(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s64_z)))
svint64_t svmls_z(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_n_s16_z)))
svint16_t svmls_z(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f64_m)))
svfloat64_t svmls_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f32_m)))
svfloat32_t svmls_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f16_m)))
svfloat16_t svmls_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f64_x)))
svfloat64_t svmls_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f32_x)))
svfloat32_t svmls_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f16_x)))
svfloat16_t svmls_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f64_z)))
svfloat64_t svmls_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f32_z)))
svfloat32_t svmls_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_f16_z)))
svfloat16_t svmls_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u8_m)))
svuint8_t svmls_m(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u32_m)))
svuint32_t svmls_m(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u64_m)))
svuint64_t svmls_m(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u16_m)))
svuint16_t svmls_m(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s8_m)))
svint8_t svmls_m(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s32_m)))
svint32_t svmls_m(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s64_m)))
svint64_t svmls_m(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s16_m)))
svint16_t svmls_m(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u8_x)))
svuint8_t svmls_x(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u32_x)))
svuint32_t svmls_x(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u64_x)))
svuint64_t svmls_x(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u16_x)))
svuint16_t svmls_x(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s8_x)))
svint8_t svmls_x(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s32_x)))
svint32_t svmls_x(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s64_x)))
svint64_t svmls_x(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s16_x)))
svint16_t svmls_x(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u8_z)))
svuint8_t svmls_z(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u32_z)))
svuint32_t svmls_z(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u64_z)))
svuint64_t svmls_z(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_u16_z)))
svuint16_t svmls_z(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s8_z)))
svint8_t svmls_z(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s32_z)))
svint32_t svmls_z(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s64_z)))
svint64_t svmls_z(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_s16_z)))
svint16_t svmls_z(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_f64)))
svfloat64_t svmls_lane(svfloat64_t, svfloat64_t, svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_f32)))
svfloat32_t svmls_lane(svfloat32_t, svfloat32_t, svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_f16)))
svfloat16_t svmls_lane(svfloat16_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmov_b_z)))
svbool_t svmov_z(svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f64_m)))
svfloat64_t svmsb_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f32_m)))
svfloat32_t svmsb_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f16_m)))
svfloat16_t svmsb_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f64_x)))
svfloat64_t svmsb_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f32_x)))
svfloat32_t svmsb_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f16_x)))
svfloat16_t svmsb_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f64_z)))
svfloat64_t svmsb_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f32_z)))
svfloat32_t svmsb_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_f16_z)))
svfloat16_t svmsb_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u8_m)))
svuint8_t svmsb_m(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u32_m)))
svuint32_t svmsb_m(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u64_m)))
svuint64_t svmsb_m(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u16_m)))
svuint16_t svmsb_m(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s8_m)))
svint8_t svmsb_m(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s32_m)))
svint32_t svmsb_m(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s64_m)))
svint64_t svmsb_m(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s16_m)))
svint16_t svmsb_m(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u8_x)))
svuint8_t svmsb_x(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u32_x)))
svuint32_t svmsb_x(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u64_x)))
svuint64_t svmsb_x(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u16_x)))
svuint16_t svmsb_x(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s8_x)))
svint8_t svmsb_x(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s32_x)))
svint32_t svmsb_x(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s64_x)))
svint64_t svmsb_x(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s16_x)))
svint16_t svmsb_x(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u8_z)))
svuint8_t svmsb_z(svbool_t, svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u32_z)))
svuint32_t svmsb_z(svbool_t, svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u64_z)))
svuint64_t svmsb_z(svbool_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_u16_z)))
svuint16_t svmsb_z(svbool_t, svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s8_z)))
svint8_t svmsb_z(svbool_t, svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s32_z)))
svint32_t svmsb_z(svbool_t, svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s64_z)))
svint64_t svmsb_z(svbool_t, svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_n_s16_z)))
svint16_t svmsb_z(svbool_t, svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f64_m)))
svfloat64_t svmsb_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f32_m)))
svfloat32_t svmsb_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f16_m)))
svfloat16_t svmsb_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f64_x)))
svfloat64_t svmsb_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f32_x)))
svfloat32_t svmsb_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f16_x)))
svfloat16_t svmsb_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f64_z)))
svfloat64_t svmsb_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f32_z)))
svfloat32_t svmsb_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_f16_z)))
svfloat16_t svmsb_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u8_m)))
svuint8_t svmsb_m(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u32_m)))
svuint32_t svmsb_m(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u64_m)))
svuint64_t svmsb_m(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u16_m)))
svuint16_t svmsb_m(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s8_m)))
svint8_t svmsb_m(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s32_m)))
svint32_t svmsb_m(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s64_m)))
svint64_t svmsb_m(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s16_m)))
svint16_t svmsb_m(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u8_x)))
svuint8_t svmsb_x(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u32_x)))
svuint32_t svmsb_x(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u64_x)))
svuint64_t svmsb_x(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u16_x)))
svuint16_t svmsb_x(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s8_x)))
svint8_t svmsb_x(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s32_x)))
svint32_t svmsb_x(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s64_x)))
svint64_t svmsb_x(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s16_x)))
svint16_t svmsb_x(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u8_z)))
svuint8_t svmsb_z(svbool_t, svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u32_z)))
svuint32_t svmsb_z(svbool_t, svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u64_z)))
svuint64_t svmsb_z(svbool_t, svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_u16_z)))
svuint16_t svmsb_z(svbool_t, svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s8_z)))
svint8_t svmsb_z(svbool_t, svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s32_z)))
svint32_t svmsb_z(svbool_t, svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s64_z)))
svint64_t svmsb_z(svbool_t, svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmsb_s16_z)))
svint16_t svmsb_z(svbool_t, svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f64_m)))
svfloat64_t svmul_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f32_m)))
svfloat32_t svmul_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f16_m)))
svfloat16_t svmul_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f64_x)))
svfloat64_t svmul_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f32_x)))
svfloat32_t svmul_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f16_x)))
svfloat16_t svmul_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f64_z)))
svfloat64_t svmul_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f32_z)))
svfloat32_t svmul_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_f16_z)))
svfloat16_t svmul_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u8_m)))
svuint8_t svmul_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u32_m)))
svuint32_t svmul_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u64_m)))
svuint64_t svmul_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u16_m)))
svuint16_t svmul_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s8_m)))
svint8_t svmul_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s32_m)))
svint32_t svmul_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s64_m)))
svint64_t svmul_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s16_m)))
svint16_t svmul_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u8_x)))
svuint8_t svmul_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u32_x)))
svuint32_t svmul_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u64_x)))
svuint64_t svmul_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u16_x)))
svuint16_t svmul_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s8_x)))
svint8_t svmul_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s32_x)))
svint32_t svmul_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s64_x)))
svint64_t svmul_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s16_x)))
svint16_t svmul_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u8_z)))
svuint8_t svmul_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u32_z)))
svuint32_t svmul_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u64_z)))
svuint64_t svmul_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_u16_z)))
svuint16_t svmul_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s8_z)))
svint8_t svmul_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s32_z)))
svint32_t svmul_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s64_z)))
svint64_t svmul_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_n_s16_z)))
svint16_t svmul_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f64_m)))
svfloat64_t svmul_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f32_m)))
svfloat32_t svmul_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f16_m)))
svfloat16_t svmul_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f64_x)))
svfloat64_t svmul_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f32_x)))
svfloat32_t svmul_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f16_x)))
svfloat16_t svmul_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f64_z)))
svfloat64_t svmul_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f32_z)))
svfloat32_t svmul_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_f16_z)))
svfloat16_t svmul_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u8_m)))
svuint8_t svmul_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u32_m)))
svuint32_t svmul_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u64_m)))
svuint64_t svmul_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u16_m)))
svuint16_t svmul_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s8_m)))
svint8_t svmul_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s32_m)))
svint32_t svmul_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s64_m)))
svint64_t svmul_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s16_m)))
svint16_t svmul_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u8_x)))
svuint8_t svmul_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u32_x)))
svuint32_t svmul_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u64_x)))
svuint64_t svmul_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u16_x)))
svuint16_t svmul_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s8_x)))
svint8_t svmul_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s32_x)))
svint32_t svmul_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s64_x)))
svint64_t svmul_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s16_x)))
svint16_t svmul_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u8_z)))
svuint8_t svmul_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u32_z)))
svuint32_t svmul_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u64_z)))
svuint64_t svmul_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_u16_z)))
svuint16_t svmul_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s8_z)))
svint8_t svmul_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s32_z)))
svint32_t svmul_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s64_z)))
svint64_t svmul_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_s16_z)))
svint16_t svmul_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_f64)))
svfloat64_t svmul_lane(svfloat64_t, svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_f32)))
svfloat32_t svmul_lane(svfloat32_t, svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_f16)))
svfloat16_t svmul_lane(svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s8_m)))
svint8_t svmulh_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s32_m)))
svint32_t svmulh_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s64_m)))
svint64_t svmulh_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s16_m)))
svint16_t svmulh_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s8_x)))
svint8_t svmulh_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s32_x)))
svint32_t svmulh_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s64_x)))
svint64_t svmulh_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s16_x)))
svint16_t svmulh_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s8_z)))
svint8_t svmulh_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s32_z)))
svint32_t svmulh_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s64_z)))
svint64_t svmulh_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_s16_z)))
svint16_t svmulh_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u8_m)))
svuint8_t svmulh_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u32_m)))
svuint32_t svmulh_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u64_m)))
svuint64_t svmulh_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u16_m)))
svuint16_t svmulh_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u8_x)))
svuint8_t svmulh_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u32_x)))
svuint32_t svmulh_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u64_x)))
svuint64_t svmulh_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u16_x)))
svuint16_t svmulh_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u8_z)))
svuint8_t svmulh_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u32_z)))
svuint32_t svmulh_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u64_z)))
svuint64_t svmulh_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_n_u16_z)))
svuint16_t svmulh_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s8_m)))
svint8_t svmulh_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s32_m)))
svint32_t svmulh_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s64_m)))
svint64_t svmulh_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s16_m)))
svint16_t svmulh_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s8_x)))
svint8_t svmulh_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s32_x)))
svint32_t svmulh_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s64_x)))
svint64_t svmulh_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s16_x)))
svint16_t svmulh_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s8_z)))
svint8_t svmulh_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s32_z)))
svint32_t svmulh_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s64_z)))
svint64_t svmulh_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_s16_z)))
svint16_t svmulh_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u8_m)))
svuint8_t svmulh_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u32_m)))
svuint32_t svmulh_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u64_m)))
svuint64_t svmulh_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u16_m)))
svuint16_t svmulh_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u8_x)))
svuint8_t svmulh_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u32_x)))
svuint32_t svmulh_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u64_x)))
svuint64_t svmulh_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u16_x)))
svuint16_t svmulh_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u8_z)))
svuint8_t svmulh_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u32_z)))
svuint32_t svmulh_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u64_z)))
svuint64_t svmulh_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulh_u16_z)))
svuint16_t svmulh_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f64_m)))
svfloat64_t svmulx_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f32_m)))
svfloat32_t svmulx_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f16_m)))
svfloat16_t svmulx_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f64_x)))
svfloat64_t svmulx_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f32_x)))
svfloat32_t svmulx_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f16_x)))
svfloat16_t svmulx_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f64_z)))
svfloat64_t svmulx_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f32_z)))
svfloat32_t svmulx_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_n_f16_z)))
svfloat16_t svmulx_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f64_m)))
svfloat64_t svmulx_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f32_m)))
svfloat32_t svmulx_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f16_m)))
svfloat16_t svmulx_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f64_x)))
svfloat64_t svmulx_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f32_x)))
svfloat32_t svmulx_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f16_x)))
svfloat16_t svmulx_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f64_z)))
svfloat64_t svmulx_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f32_z)))
svfloat32_t svmulx_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmulx_f16_z)))
svfloat16_t svmulx_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnand_b_z)))
svbool_t svnand_z(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f64_m)))
svfloat64_t svneg_m(svfloat64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f32_m)))
svfloat32_t svneg_m(svfloat32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f16_m)))
svfloat16_t svneg_m(svfloat16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f64_x)))
svfloat64_t svneg_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f32_x)))
svfloat32_t svneg_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f16_x)))
svfloat16_t svneg_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f64_z)))
svfloat64_t svneg_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f32_z)))
svfloat32_t svneg_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_f16_z)))
svfloat16_t svneg_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s8_m)))
svint8_t svneg_m(svint8_t, svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s32_m)))
svint32_t svneg_m(svint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s64_m)))
svint64_t svneg_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s16_m)))
svint16_t svneg_m(svint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s8_x)))
svint8_t svneg_x(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s32_x)))
svint32_t svneg_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s64_x)))
svint64_t svneg_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s16_x)))
svint16_t svneg_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s8_z)))
svint8_t svneg_z(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s32_z)))
svint32_t svneg_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s64_z)))
svint64_t svneg_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svneg_s16_z)))
svint16_t svneg_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f64_m)))
svfloat64_t svnmad_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f32_m)))
svfloat32_t svnmad_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f16_m)))
svfloat16_t svnmad_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f64_x)))
svfloat64_t svnmad_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f32_x)))
svfloat32_t svnmad_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f16_x)))
svfloat16_t svnmad_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f64_z)))
svfloat64_t svnmad_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f32_z)))
svfloat32_t svnmad_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_n_f16_z)))
svfloat16_t svnmad_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f64_m)))
svfloat64_t svnmad_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f32_m)))
svfloat32_t svnmad_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f16_m)))
svfloat16_t svnmad_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f64_x)))
svfloat64_t svnmad_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f32_x)))
svfloat32_t svnmad_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f16_x)))
svfloat16_t svnmad_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f64_z)))
svfloat64_t svnmad_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f32_z)))
svfloat32_t svnmad_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmad_f16_z)))
svfloat16_t svnmad_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f64_m)))
svfloat64_t svnmla_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f32_m)))
svfloat32_t svnmla_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f16_m)))
svfloat16_t svnmla_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f64_x)))
svfloat64_t svnmla_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f32_x)))
svfloat32_t svnmla_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f16_x)))
svfloat16_t svnmla_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f64_z)))
svfloat64_t svnmla_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f32_z)))
svfloat32_t svnmla_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_n_f16_z)))
svfloat16_t svnmla_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f64_m)))
svfloat64_t svnmla_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f32_m)))
svfloat32_t svnmla_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f16_m)))
svfloat16_t svnmla_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f64_x)))
svfloat64_t svnmla_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f32_x)))
svfloat32_t svnmla_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f16_x)))
svfloat16_t svnmla_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f64_z)))
svfloat64_t svnmla_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f32_z)))
svfloat32_t svnmla_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmla_f16_z)))
svfloat16_t svnmla_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f64_m)))
svfloat64_t svnmls_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f32_m)))
svfloat32_t svnmls_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f16_m)))
svfloat16_t svnmls_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f64_x)))
svfloat64_t svnmls_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f32_x)))
svfloat32_t svnmls_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f16_x)))
svfloat16_t svnmls_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f64_z)))
svfloat64_t svnmls_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f32_z)))
svfloat32_t svnmls_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_n_f16_z)))
svfloat16_t svnmls_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f64_m)))
svfloat64_t svnmls_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f32_m)))
svfloat32_t svnmls_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f16_m)))
svfloat16_t svnmls_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f64_x)))
svfloat64_t svnmls_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f32_x)))
svfloat32_t svnmls_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f16_x)))
svfloat16_t svnmls_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f64_z)))
svfloat64_t svnmls_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f32_z)))
svfloat32_t svnmls_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmls_f16_z)))
svfloat16_t svnmls_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f64_m)))
svfloat64_t svnmsb_m(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f32_m)))
svfloat32_t svnmsb_m(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f16_m)))
svfloat16_t svnmsb_m(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f64_x)))
svfloat64_t svnmsb_x(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f32_x)))
svfloat32_t svnmsb_x(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f16_x)))
svfloat16_t svnmsb_x(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f64_z)))
svfloat64_t svnmsb_z(svbool_t, svfloat64_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f32_z)))
svfloat32_t svnmsb_z(svbool_t, svfloat32_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_n_f16_z)))
svfloat16_t svnmsb_z(svbool_t, svfloat16_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f64_m)))
svfloat64_t svnmsb_m(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f32_m)))
svfloat32_t svnmsb_m(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f16_m)))
svfloat16_t svnmsb_m(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f64_x)))
svfloat64_t svnmsb_x(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f32_x)))
svfloat32_t svnmsb_x(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f16_x)))
svfloat16_t svnmsb_x(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f64_z)))
svfloat64_t svnmsb_z(svbool_t, svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f32_z)))
svfloat32_t svnmsb_z(svbool_t, svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmsb_f16_z)))
svfloat16_t svnmsb_z(svbool_t, svfloat16_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnor_b_z)))
svbool_t svnor_z(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_b_z)))
svbool_t svnot_z(svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u8_m)))
svuint8_t svnot_m(svuint8_t, svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u32_m)))
svuint32_t svnot_m(svuint32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u64_m)))
svuint64_t svnot_m(svuint64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u16_m)))
svuint16_t svnot_m(svuint16_t, svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s8_m)))
svint8_t svnot_m(svint8_t, svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s32_m)))
svint32_t svnot_m(svint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s64_m)))
svint64_t svnot_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s16_m)))
svint16_t svnot_m(svint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u8_x)))
svuint8_t svnot_x(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u32_x)))
svuint32_t svnot_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u64_x)))
svuint64_t svnot_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u16_x)))
svuint16_t svnot_x(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s8_x)))
svint8_t svnot_x(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s32_x)))
svint32_t svnot_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s64_x)))
svint64_t svnot_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s16_x)))
svint16_t svnot_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u8_z)))
svuint8_t svnot_z(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u32_z)))
svuint32_t svnot_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u64_z)))
svuint64_t svnot_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_u16_z)))
svuint16_t svnot_z(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s8_z)))
svint8_t svnot_z(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s32_z)))
svint32_t svnot_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s64_z)))
svint64_t svnot_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnot_s16_z)))
svint16_t svnot_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorn_b_z)))
svbool_t svorn_z(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_b_z)))
svbool_t svorr_z(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u8_m)))
svuint8_t svorr_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u32_m)))
svuint32_t svorr_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u64_m)))
svuint64_t svorr_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u16_m)))
svuint16_t svorr_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s8_m)))
svint8_t svorr_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s32_m)))
svint32_t svorr_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s64_m)))
svint64_t svorr_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s16_m)))
svint16_t svorr_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u8_x)))
svuint8_t svorr_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u32_x)))
svuint32_t svorr_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u64_x)))
svuint64_t svorr_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u16_x)))
svuint16_t svorr_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s8_x)))
svint8_t svorr_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s32_x)))
svint32_t svorr_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s64_x)))
svint64_t svorr_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s16_x)))
svint16_t svorr_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u8_z)))
svuint8_t svorr_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u32_z)))
svuint32_t svorr_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u64_z)))
svuint64_t svorr_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_u16_z)))
svuint16_t svorr_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s8_z)))
svint8_t svorr_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s32_z)))
svint32_t svorr_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s64_z)))
svint64_t svorr_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_n_s16_z)))
svint16_t svorr_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u8_m)))
svuint8_t svorr_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u32_m)))
svuint32_t svorr_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u64_m)))
svuint64_t svorr_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u16_m)))
svuint16_t svorr_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s8_m)))
svint8_t svorr_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s32_m)))
svint32_t svorr_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s64_m)))
svint64_t svorr_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s16_m)))
svint16_t svorr_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u8_x)))
svuint8_t svorr_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u32_x)))
svuint32_t svorr_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u64_x)))
svuint64_t svorr_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u16_x)))
svuint16_t svorr_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s8_x)))
svint8_t svorr_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s32_x)))
svint32_t svorr_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s64_x)))
svint64_t svorr_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s16_x)))
svint16_t svorr_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u8_z)))
svuint8_t svorr_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u32_z)))
svuint32_t svorr_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u64_z)))
svuint64_t svorr_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_u16_z)))
svuint16_t svorr_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s8_z)))
svint8_t svorr_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s32_z)))
svint32_t svorr_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s64_z)))
svint64_t svorr_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorr_s16_z)))
svint16_t svorr_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_u8)))
uint8_t svorv(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_u32)))
uint32_t svorv(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_u64)))
uint64_t svorv(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_u16)))
uint16_t svorv(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_s8)))
int8_t svorv(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_s32)))
int32_t svorv(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_s64)))
int64_t svorv(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svorv_s16)))
int16_t svorv(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpfalse_b)))
svbool_t svpfalse();
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpfirst_b)))
svbool_t svpfirst(svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u32base)))
void svprfb_gather(svbool_t, svuint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u64base)))
void svprfb_gather(svbool_t, svuint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u32base_offset)))
void svprfb_gather_offset(svbool_t, svuint32_t, int64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u64base_offset)))
void svprfb_gather_offset(svbool_t, svuint64_t, int64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_s32offset)))
void svprfb_gather_offset(svbool_t, void const *, svint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u32offset)))
void svprfb_gather_offset(svbool_t, void const *, svuint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_s64offset)))
void svprfb_gather_offset(svbool_t, void const *, svint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfb_gather_u64offset)))
void svprfb_gather_offset(svbool_t, void const *, svuint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u32base)))
void svprfd_gather(svbool_t, svuint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u64base)))
void svprfd_gather(svbool_t, svuint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u32base_index)))
void svprfd_gather_index(svbool_t, svuint32_t, int64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u64base_index)))
void svprfd_gather_index(svbool_t, svuint64_t, int64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_s32index)))
void svprfd_gather_index(svbool_t, void const *, svint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u32index)))
void svprfd_gather_index(svbool_t, void const *, svuint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_s64index)))
void svprfd_gather_index(svbool_t, void const *, svint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfd_gather_u64index)))
void svprfd_gather_index(svbool_t, void const *, svuint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u32base)))
void svprfh_gather(svbool_t, svuint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u64base)))
void svprfh_gather(svbool_t, svuint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u32base_index)))
void svprfh_gather_index(svbool_t, svuint32_t, int64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u64base_index)))
void svprfh_gather_index(svbool_t, svuint64_t, int64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_s32index)))
void svprfh_gather_index(svbool_t, void const *, svint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u32index)))
void svprfh_gather_index(svbool_t, void const *, svuint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_s64index)))
void svprfh_gather_index(svbool_t, void const *, svint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfh_gather_u64index)))
void svprfh_gather_index(svbool_t, void const *, svuint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u32base)))
void svprfw_gather(svbool_t, svuint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u64base)))
void svprfw_gather(svbool_t, svuint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u32base_index)))
void svprfw_gather_index(svbool_t, svuint32_t, int64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u64base_index)))
void svprfw_gather_index(svbool_t, svuint64_t, int64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_s32index)))
void svprfw_gather_index(svbool_t, void const *, svint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u32index)))
void svprfw_gather_index(svbool_t, void const *, svuint32_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_s64index)))
void svprfw_gather_index(svbool_t, void const *, svint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svprfw_gather_u64index)))
void svprfw_gather_index(svbool_t, void const *, svuint64_t, enum svprfop);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s8)))
svint8_t svqadd(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s32)))
svint32_t svqadd(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s64)))
svint64_t svqadd(svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s16)))
svint16_t svqadd(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u8)))
svuint8_t svqadd(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u32)))
svuint32_t svqadd(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u64)))
svuint64_t svqadd(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u16)))
svuint16_t svqadd(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s8)))
svint8_t svqadd(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s32)))
svint32_t svqadd(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s64)))
svint64_t svqadd(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s16)))
svint16_t svqadd(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u8)))
svuint8_t svqadd(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u32)))
svuint32_t svqadd(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u64)))
svuint64_t svqadd(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u16)))
svuint16_t svqadd(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_n_s32)))
int32_t svqdecb(int32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_n_s64)))
int64_t svqdecb(int64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_n_u32)))
uint32_t svqdecb(uint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_n_u64)))
uint64_t svqdecb(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_pat_n_s32)))
int32_t svqdecb_pat(int32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_pat_n_s64)))
int64_t svqdecb_pat(int64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_pat_n_u32)))
uint32_t svqdecb_pat(uint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecb_pat_n_u64)))
uint64_t svqdecb_pat(uint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_n_s32)))
int32_t svqdecd(int32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_n_s64)))
int64_t svqdecd(int64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_n_u32)))
uint32_t svqdecd(uint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_n_u64)))
uint64_t svqdecd(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_s64)))
svint64_t svqdecd(svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_u64)))
svuint64_t svqdecd(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_n_s32)))
int32_t svqdecd_pat(int32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_n_s64)))
int64_t svqdecd_pat(int64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_n_u32)))
uint32_t svqdecd_pat(uint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_n_u64)))
uint64_t svqdecd_pat(uint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_s64)))
svint64_t svqdecd_pat(svint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecd_pat_u64)))
svuint64_t svqdecd_pat(svuint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_n_s32)))
int32_t svqdech(int32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_n_s64)))
int64_t svqdech(int64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_n_u32)))
uint32_t svqdech(uint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_n_u64)))
uint64_t svqdech(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_s16)))
svint16_t svqdech(svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_u16)))
svuint16_t svqdech(svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_n_s32)))
int32_t svqdech_pat(int32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_n_s64)))
int64_t svqdech_pat(int64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_n_u32)))
uint32_t svqdech_pat(uint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_n_u64)))
uint64_t svqdech_pat(uint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_s16)))
svint16_t svqdech_pat(svint16_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdech_pat_u16)))
svuint16_t svqdech_pat(svuint16_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s32_b8)))
int32_t svqdecp_b8(int32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s32_b32)))
int32_t svqdecp_b32(int32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s32_b64)))
int32_t svqdecp_b64(int32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s32_b16)))
int32_t svqdecp_b16(int32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s64_b8)))
int64_t svqdecp_b8(int64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s64_b32)))
int64_t svqdecp_b32(int64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s64_b64)))
int64_t svqdecp_b64(int64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_s64_b16)))
int64_t svqdecp_b16(int64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u32_b8)))
uint32_t svqdecp_b8(uint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u32_b32)))
uint32_t svqdecp_b32(uint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u32_b64)))
uint32_t svqdecp_b64(uint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u32_b16)))
uint32_t svqdecp_b16(uint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u64_b8)))
uint64_t svqdecp_b8(uint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u64_b32)))
uint64_t svqdecp_b32(uint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u64_b64)))
uint64_t svqdecp_b64(uint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_n_u64_b16)))
uint64_t svqdecp_b16(uint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_s32)))
svint32_t svqdecp(svint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_s64)))
svint64_t svqdecp(svint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_s16)))
svint16_t svqdecp(svint16_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_u32)))
svuint32_t svqdecp(svuint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_u64)))
svuint64_t svqdecp(svuint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecp_u16)))
svuint16_t svqdecp(svuint16_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_n_s32)))
int32_t svqdecw(int32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_n_s64)))
int64_t svqdecw(int64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_n_u32)))
uint32_t svqdecw(uint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_n_u64)))
uint64_t svqdecw(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_s32)))
svint32_t svqdecw(svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_u32)))
svuint32_t svqdecw(svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_n_s32)))
int32_t svqdecw_pat(int32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_n_s64)))
int64_t svqdecw_pat(int64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_n_u32)))
uint32_t svqdecw_pat(uint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_n_u64)))
uint64_t svqdecw_pat(uint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_s32)))
svint32_t svqdecw_pat(svint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdecw_pat_u32)))
svuint32_t svqdecw_pat(svuint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_n_s32)))
int32_t svqincb(int32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_n_s64)))
int64_t svqincb(int64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_n_u32)))
uint32_t svqincb(uint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_n_u64)))
uint64_t svqincb(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_pat_n_s32)))
int32_t svqincb_pat(int32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_pat_n_s64)))
int64_t svqincb_pat(int64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_pat_n_u32)))
uint32_t svqincb_pat(uint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincb_pat_n_u64)))
uint64_t svqincb_pat(uint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_n_s32)))
int32_t svqincd(int32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_n_s64)))
int64_t svqincd(int64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_n_u32)))
uint32_t svqincd(uint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_n_u64)))
uint64_t svqincd(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_s64)))
svint64_t svqincd(svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_u64)))
svuint64_t svqincd(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_n_s32)))
int32_t svqincd_pat(int32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_n_s64)))
int64_t svqincd_pat(int64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_n_u32)))
uint32_t svqincd_pat(uint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_n_u64)))
uint64_t svqincd_pat(uint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_s64)))
svint64_t svqincd_pat(svint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincd_pat_u64)))
svuint64_t svqincd_pat(svuint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_n_s32)))
int32_t svqinch(int32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_n_s64)))
int64_t svqinch(int64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_n_u32)))
uint32_t svqinch(uint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_n_u64)))
uint64_t svqinch(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_s16)))
svint16_t svqinch(svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_u16)))
svuint16_t svqinch(svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_n_s32)))
int32_t svqinch_pat(int32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_n_s64)))
int64_t svqinch_pat(int64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_n_u32)))
uint32_t svqinch_pat(uint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_n_u64)))
uint64_t svqinch_pat(uint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_s16)))
svint16_t svqinch_pat(svint16_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqinch_pat_u16)))
svuint16_t svqinch_pat(svuint16_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s32_b8)))
int32_t svqincp_b8(int32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s32_b32)))
int32_t svqincp_b32(int32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s32_b64)))
int32_t svqincp_b64(int32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s32_b16)))
int32_t svqincp_b16(int32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s64_b8)))
int64_t svqincp_b8(int64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s64_b32)))
int64_t svqincp_b32(int64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s64_b64)))
int64_t svqincp_b64(int64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_s64_b16)))
int64_t svqincp_b16(int64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u32_b8)))
uint32_t svqincp_b8(uint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u32_b32)))
uint32_t svqincp_b32(uint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u32_b64)))
uint32_t svqincp_b64(uint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u32_b16)))
uint32_t svqincp_b16(uint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u64_b8)))
uint64_t svqincp_b8(uint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u64_b32)))
uint64_t svqincp_b32(uint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u64_b64)))
uint64_t svqincp_b64(uint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_n_u64_b16)))
uint64_t svqincp_b16(uint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_s32)))
svint32_t svqincp(svint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_s64)))
svint64_t svqincp(svint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_s16)))
svint16_t svqincp(svint16_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_u32)))
svuint32_t svqincp(svuint32_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_u64)))
svuint64_t svqincp(svuint64_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincp_u16)))
svuint16_t svqincp(svuint16_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_n_s32)))
int32_t svqincw(int32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_n_s64)))
int64_t svqincw(int64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_n_u32)))
uint32_t svqincw(uint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_n_u64)))
uint64_t svqincw(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_s32)))
svint32_t svqincw(svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_u32)))
svuint32_t svqincw(svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_n_s32)))
int32_t svqincw_pat(int32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_n_s64)))
int64_t svqincw_pat(int64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_n_u32)))
uint32_t svqincw_pat(uint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_n_u64)))
uint64_t svqincw_pat(uint64_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_s32)))
svint32_t svqincw_pat(svint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqincw_pat_u32)))
svuint32_t svqincw_pat(svuint32_t, enum svpattern, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s8)))
svint8_t svqsub(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s32)))
svint32_t svqsub(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s64)))
svint64_t svqsub(svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s16)))
svint16_t svqsub(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u8)))
svuint8_t svqsub(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u32)))
svuint32_t svqsub(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u64)))
svuint64_t svqsub(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u16)))
svuint16_t svqsub(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s8)))
svint8_t svqsub(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s32)))
svint32_t svqsub(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s64)))
svint64_t svqsub(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s16)))
svint16_t svqsub(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u8)))
svuint8_t svqsub(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u32)))
svuint32_t svqsub(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u64)))
svuint64_t svqsub(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u16)))
svuint16_t svqsub(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u8_m)))
svuint8_t svrbit_m(svuint8_t, svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u32_m)))
svuint32_t svrbit_m(svuint32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u64_m)))
svuint64_t svrbit_m(svuint64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u16_m)))
svuint16_t svrbit_m(svuint16_t, svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s8_m)))
svint8_t svrbit_m(svint8_t, svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s32_m)))
svint32_t svrbit_m(svint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s64_m)))
svint64_t svrbit_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s16_m)))
svint16_t svrbit_m(svint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u8_x)))
svuint8_t svrbit_x(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u32_x)))
svuint32_t svrbit_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u64_x)))
svuint64_t svrbit_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u16_x)))
svuint16_t svrbit_x(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s8_x)))
svint8_t svrbit_x(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s32_x)))
svint32_t svrbit_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s64_x)))
svint64_t svrbit_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s16_x)))
svint16_t svrbit_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u8_z)))
svuint8_t svrbit_z(svbool_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u32_z)))
svuint32_t svrbit_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u64_z)))
svuint64_t svrbit_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_u16_z)))
svuint16_t svrbit_z(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s8_z)))
svint8_t svrbit_z(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s32_z)))
svint32_t svrbit_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s64_z)))
svint64_t svrbit_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrbit_s16_z)))
svint16_t svrbit_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_f64)))
svfloat64_t svrecpe(svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_f32)))
svfloat32_t svrecpe(svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_f16)))
svfloat16_t svrecpe(svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecps_f64)))
svfloat64_t svrecps(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecps_f32)))
svfloat32_t svrecps(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecps_f16)))
svfloat16_t svrecps(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f64_m)))
svfloat64_t svrecpx_m(svfloat64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f32_m)))
svfloat32_t svrecpx_m(svfloat32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f16_m)))
svfloat16_t svrecpx_m(svfloat16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f64_x)))
svfloat64_t svrecpx_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f32_x)))
svfloat32_t svrecpx_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f16_x)))
svfloat16_t svrecpx_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f64_z)))
svfloat64_t svrecpx_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f32_z)))
svfloat32_t svrecpx_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpx_f16_z)))
svfloat16_t svrecpx_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_u8)))
svuint8_t svrev(svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_u32)))
svuint32_t svrev(svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_u64)))
svuint64_t svrev(svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_u16)))
svuint16_t svrev(svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_s8)))
svint8_t svrev(svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_f64)))
svfloat64_t svrev(svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_f32)))
svfloat32_t svrev(svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_f16)))
svfloat16_t svrev(svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_s32)))
svint32_t svrev(svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_s64)))
svint64_t svrev(svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_s16)))
svint16_t svrev(svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u32_m)))
svuint32_t svrevb_m(svuint32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u64_m)))
svuint64_t svrevb_m(svuint64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u16_m)))
svuint16_t svrevb_m(svuint16_t, svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s32_m)))
svint32_t svrevb_m(svint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s64_m)))
svint64_t svrevb_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s16_m)))
svint16_t svrevb_m(svint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u32_x)))
svuint32_t svrevb_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u64_x)))
svuint64_t svrevb_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u16_x)))
svuint16_t svrevb_x(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s32_x)))
svint32_t svrevb_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s64_x)))
svint64_t svrevb_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s16_x)))
svint16_t svrevb_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u32_z)))
svuint32_t svrevb_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u64_z)))
svuint64_t svrevb_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_u16_z)))
svuint16_t svrevb_z(svbool_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s32_z)))
svint32_t svrevb_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s64_z)))
svint64_t svrevb_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevb_s16_z)))
svint16_t svrevb_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u32_m)))
svuint32_t svrevh_m(svuint32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u64_m)))
svuint64_t svrevh_m(svuint64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s32_m)))
svint32_t svrevh_m(svint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s64_m)))
svint64_t svrevh_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u32_x)))
svuint32_t svrevh_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u64_x)))
svuint64_t svrevh_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s32_x)))
svint32_t svrevh_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s64_x)))
svint64_t svrevh_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u32_z)))
svuint32_t svrevh_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_u64_z)))
svuint64_t svrevh_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s32_z)))
svint32_t svrevh_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevh_s64_z)))
svint64_t svrevh_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_u64_m)))
svuint64_t svrevw_m(svuint64_t, svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_s64_m)))
svint64_t svrevw_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_u64_x)))
svuint64_t svrevw_x(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_s64_x)))
svint64_t svrevw_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_u64_z)))
svuint64_t svrevw_z(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrevw_s64_z)))
svint64_t svrevw_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f64_m)))
svfloat64_t svrinta_m(svfloat64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f32_m)))
svfloat32_t svrinta_m(svfloat32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f16_m)))
svfloat16_t svrinta_m(svfloat16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f64_x)))
svfloat64_t svrinta_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f32_x)))
svfloat32_t svrinta_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f16_x)))
svfloat16_t svrinta_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f64_z)))
svfloat64_t svrinta_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f32_z)))
svfloat32_t svrinta_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinta_f16_z)))
svfloat16_t svrinta_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f64_m)))
svfloat64_t svrinti_m(svfloat64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f32_m)))
svfloat32_t svrinti_m(svfloat32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f16_m)))
svfloat16_t svrinti_m(svfloat16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f64_x)))
svfloat64_t svrinti_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f32_x)))
svfloat32_t svrinti_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f16_x)))
svfloat16_t svrinti_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f64_z)))
svfloat64_t svrinti_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f32_z)))
svfloat32_t svrinti_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrinti_f16_z)))
svfloat16_t svrinti_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f64_m)))
svfloat64_t svrintm_m(svfloat64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f32_m)))
svfloat32_t svrintm_m(svfloat32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f16_m)))
svfloat16_t svrintm_m(svfloat16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f64_x)))
svfloat64_t svrintm_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f32_x)))
svfloat32_t svrintm_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f16_x)))
svfloat16_t svrintm_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f64_z)))
svfloat64_t svrintm_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f32_z)))
svfloat32_t svrintm_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintm_f16_z)))
svfloat16_t svrintm_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f64_m)))
svfloat64_t svrintn_m(svfloat64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f32_m)))
svfloat32_t svrintn_m(svfloat32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f16_m)))
svfloat16_t svrintn_m(svfloat16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f64_x)))
svfloat64_t svrintn_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f32_x)))
svfloat32_t svrintn_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f16_x)))
svfloat16_t svrintn_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f64_z)))
svfloat64_t svrintn_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f32_z)))
svfloat32_t svrintn_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintn_f16_z)))
svfloat16_t svrintn_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f64_m)))
svfloat64_t svrintp_m(svfloat64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f32_m)))
svfloat32_t svrintp_m(svfloat32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f16_m)))
svfloat16_t svrintp_m(svfloat16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f64_x)))
svfloat64_t svrintp_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f32_x)))
svfloat32_t svrintp_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f16_x)))
svfloat16_t svrintp_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f64_z)))
svfloat64_t svrintp_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f32_z)))
svfloat32_t svrintp_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintp_f16_z)))
svfloat16_t svrintp_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f64_m)))
svfloat64_t svrintx_m(svfloat64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f32_m)))
svfloat32_t svrintx_m(svfloat32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f16_m)))
svfloat16_t svrintx_m(svfloat16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f64_x)))
svfloat64_t svrintx_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f32_x)))
svfloat32_t svrintx_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f16_x)))
svfloat16_t svrintx_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f64_z)))
svfloat64_t svrintx_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f32_z)))
svfloat32_t svrintx_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintx_f16_z)))
svfloat16_t svrintx_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f64_m)))
svfloat64_t svrintz_m(svfloat64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f32_m)))
svfloat32_t svrintz_m(svfloat32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f16_m)))
svfloat16_t svrintz_m(svfloat16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f64_x)))
svfloat64_t svrintz_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f32_x)))
svfloat32_t svrintz_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f16_x)))
svfloat16_t svrintz_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f64_z)))
svfloat64_t svrintz_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f32_z)))
svfloat32_t svrintz_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrintz_f16_z)))
svfloat16_t svrintz_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_f64)))
svfloat64_t svrsqrte(svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_f32)))
svfloat32_t svrsqrte(svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_f16)))
svfloat16_t svrsqrte(svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrts_f64)))
svfloat64_t svrsqrts(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrts_f32)))
svfloat32_t svrsqrts(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrts_f16)))
svfloat16_t svrsqrts(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f64_m)))
svfloat64_t svscale_m(svbool_t, svfloat64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f32_m)))
svfloat32_t svscale_m(svbool_t, svfloat32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f16_m)))
svfloat16_t svscale_m(svbool_t, svfloat16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f64_x)))
svfloat64_t svscale_x(svbool_t, svfloat64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f32_x)))
svfloat32_t svscale_x(svbool_t, svfloat32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f16_x)))
svfloat16_t svscale_x(svbool_t, svfloat16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f64_z)))
svfloat64_t svscale_z(svbool_t, svfloat64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f32_z)))
svfloat32_t svscale_z(svbool_t, svfloat32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_n_f16_z)))
svfloat16_t svscale_z(svbool_t, svfloat16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f64_m)))
svfloat64_t svscale_m(svbool_t, svfloat64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f32_m)))
svfloat32_t svscale_m(svbool_t, svfloat32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f16_m)))
svfloat16_t svscale_m(svbool_t, svfloat16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f64_x)))
svfloat64_t svscale_x(svbool_t, svfloat64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f32_x)))
svfloat32_t svscale_x(svbool_t, svfloat32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f16_x)))
svfloat16_t svscale_x(svbool_t, svfloat16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f64_z)))
svfloat64_t svscale_z(svbool_t, svfloat64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f32_z)))
svfloat32_t svscale_z(svbool_t, svfloat32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svscale_f16_z)))
svfloat16_t svscale_z(svbool_t, svfloat16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_b)))
svbool_t svsel(svbool_t, svbool_t, svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_u8)))
svuint8_t svsel(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_u32)))
svuint32_t svsel(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_u64)))
svuint64_t svsel(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_u16)))
svuint16_t svsel(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_s8)))
svint8_t svsel(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_f64)))
svfloat64_t svsel(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_f32)))
svfloat32_t svsel(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_f16)))
svfloat16_t svsel(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_s32)))
svint32_t svsel(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_s64)))
svint64_t svsel(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_s16)))
svint16_t svsel(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_u8)))
svuint8x2_t svset2(svuint8x2_t, uint64_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_u32)))
svuint32x2_t svset2(svuint32x2_t, uint64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_u64)))
svuint64x2_t svset2(svuint64x2_t, uint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_u16)))
svuint16x2_t svset2(svuint16x2_t, uint64_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_s8)))
svint8x2_t svset2(svint8x2_t, uint64_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_f64)))
svfloat64x2_t svset2(svfloat64x2_t, uint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_f32)))
svfloat32x2_t svset2(svfloat32x2_t, uint64_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_f16)))
svfloat16x2_t svset2(svfloat16x2_t, uint64_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_s32)))
svint32x2_t svset2(svint32x2_t, uint64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_s64)))
svint64x2_t svset2(svint64x2_t, uint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_s16)))
svint16x2_t svset2(svint16x2_t, uint64_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_u8)))
svuint8x3_t svset3(svuint8x3_t, uint64_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_u32)))
svuint32x3_t svset3(svuint32x3_t, uint64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_u64)))
svuint64x3_t svset3(svuint64x3_t, uint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_u16)))
svuint16x3_t svset3(svuint16x3_t, uint64_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_s8)))
svint8x3_t svset3(svint8x3_t, uint64_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_f64)))
svfloat64x3_t svset3(svfloat64x3_t, uint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_f32)))
svfloat32x3_t svset3(svfloat32x3_t, uint64_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_f16)))
svfloat16x3_t svset3(svfloat16x3_t, uint64_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_s32)))
svint32x3_t svset3(svint32x3_t, uint64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_s64)))
svint64x3_t svset3(svint64x3_t, uint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_s16)))
svint16x3_t svset3(svint16x3_t, uint64_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_u8)))
svuint8x4_t svset4(svuint8x4_t, uint64_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_u32)))
svuint32x4_t svset4(svuint32x4_t, uint64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_u64)))
svuint64x4_t svset4(svuint64x4_t, uint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_u16)))
svuint16x4_t svset4(svuint16x4_t, uint64_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_s8)))
svint8x4_t svset4(svint8x4_t, uint64_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_f64)))
svfloat64x4_t svset4(svfloat64x4_t, uint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_f32)))
svfloat32x4_t svset4(svfloat32x4_t, uint64_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_f16)))
svfloat16x4_t svset4(svfloat16x4_t, uint64_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_s32)))
svint32x4_t svset4(svint32x4_t, uint64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_s64)))
svint64x4_t svset4(svint64x4_t, uint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_s16)))
svint16x4_t svset4(svint16x4_t, uint64_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_u8)))
svuint8_t svsplice(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_u32)))
svuint32_t svsplice(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_u64)))
svuint64_t svsplice(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_u16)))
svuint16_t svsplice(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_s8)))
svint8_t svsplice(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_f64)))
svfloat64_t svsplice(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_f32)))
svfloat32_t svsplice(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_f16)))
svfloat16_t svsplice(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_s32)))
svint32_t svsplice(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_s64)))
svint64_t svsplice(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_s16)))
svint16_t svsplice(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f64_m)))
svfloat64_t svsqrt_m(svfloat64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f32_m)))
svfloat32_t svsqrt_m(svfloat32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f16_m)))
svfloat16_t svsqrt_m(svfloat16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f64_x)))
svfloat64_t svsqrt_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f32_x)))
svfloat32_t svsqrt_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f16_x)))
svfloat16_t svsqrt_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f64_z)))
svfloat64_t svsqrt_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f32_z)))
svfloat32_t svsqrt_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqrt_f16_z)))
svfloat16_t svsqrt_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_u8)))
void svst1(svbool_t, uint8_t *, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_u32)))
void svst1(svbool_t, uint32_t *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_u64)))
void svst1(svbool_t, uint64_t *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_u16)))
void svst1(svbool_t, uint16_t *, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_s8)))
void svst1(svbool_t, int8_t *, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_f64)))
void svst1(svbool_t, float64_t *, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_f32)))
void svst1(svbool_t, float32_t *, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_f16)))
void svst1(svbool_t, float16_t *, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_s32)))
void svst1(svbool_t, int32_t *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_s64)))
void svst1(svbool_t, int64_t *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_s16)))
void svst1(svbool_t, int16_t *, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_index_u32)))
void svst1_scatter_index(svbool_t, svuint32_t, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_index_u64)))
void svst1_scatter_index(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_index_f64)))
void svst1_scatter_index(svbool_t, svuint64_t, int64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_index_f32)))
void svst1_scatter_index(svbool_t, svuint32_t, int64_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_index_s32)))
void svst1_scatter_index(svbool_t, svuint32_t, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_index_s64)))
void svst1_scatter_index(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_offset_u32)))
void svst1_scatter_offset(svbool_t, svuint32_t, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_offset_u64)))
void svst1_scatter_offset(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_offset_f64)))
void svst1_scatter_offset(svbool_t, svuint64_t, int64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_offset_f32)))
void svst1_scatter_offset(svbool_t, svuint32_t, int64_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_offset_s32)))
void svst1_scatter_offset(svbool_t, svuint32_t, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_offset_s64)))
void svst1_scatter_offset(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_u32)))
void svst1_scatter(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_u64)))
void svst1_scatter(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_f64)))
void svst1_scatter(svbool_t, svuint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_f32)))
void svst1_scatter(svbool_t, svuint32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32base_s32)))
void svst1_scatter(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64base_s64)))
void svst1_scatter(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32index_u32)))
void svst1_scatter_index(svbool_t, uint32_t *, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32index_f32)))
void svst1_scatter_index(svbool_t, float32_t *, svint32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32index_s32)))
void svst1_scatter_index(svbool_t, int32_t *, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32index_u32)))
void svst1_scatter_index(svbool_t, uint32_t *, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32index_f32)))
void svst1_scatter_index(svbool_t, float32_t *, svuint32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32index_s32)))
void svst1_scatter_index(svbool_t, int32_t *, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64index_u64)))
void svst1_scatter_index(svbool_t, uint64_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64index_f64)))
void svst1_scatter_index(svbool_t, float64_t *, svint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64index_s64)))
void svst1_scatter_index(svbool_t, int64_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64index_u64)))
void svst1_scatter_index(svbool_t, uint64_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64index_f64)))
void svst1_scatter_index(svbool_t, float64_t *, svuint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64index_s64)))
void svst1_scatter_index(svbool_t, int64_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32offset_u32)))
void svst1_scatter_offset(svbool_t, uint32_t *, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32offset_f32)))
void svst1_scatter_offset(svbool_t, float32_t *, svint32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s32offset_s32)))
void svst1_scatter_offset(svbool_t, int32_t *, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32offset_u32)))
void svst1_scatter_offset(svbool_t, uint32_t *, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32offset_f32)))
void svst1_scatter_offset(svbool_t, float32_t *, svuint32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u32offset_s32)))
void svst1_scatter_offset(svbool_t, int32_t *, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64offset_u64)))
void svst1_scatter_offset(svbool_t, uint64_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64offset_f64)))
void svst1_scatter_offset(svbool_t, float64_t *, svint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_s64offset_s64)))
void svst1_scatter_offset(svbool_t, int64_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64offset_u64)))
void svst1_scatter_offset(svbool_t, uint64_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64offset_f64)))
void svst1_scatter_offset(svbool_t, float64_t *, svuint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_scatter_u64offset_s64)))
void svst1_scatter_offset(svbool_t, int64_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_u8)))
void svst1_vnum(svbool_t, uint8_t *, int64_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_u32)))
void svst1_vnum(svbool_t, uint32_t *, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_u64)))
void svst1_vnum(svbool_t, uint64_t *, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_u16)))
void svst1_vnum(svbool_t, uint16_t *, int64_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_s8)))
void svst1_vnum(svbool_t, int8_t *, int64_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_f64)))
void svst1_vnum(svbool_t, float64_t *, int64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_f32)))
void svst1_vnum(svbool_t, float32_t *, int64_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_f16)))
void svst1_vnum(svbool_t, float16_t *, int64_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_s32)))
void svst1_vnum(svbool_t, int32_t *, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_s64)))
void svst1_vnum(svbool_t, int64_t *, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_s16)))
void svst1_vnum(svbool_t, int16_t *, int64_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_s32)))
void svst1b(svbool_t, int8_t *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_s64)))
void svst1b(svbool_t, int8_t *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_s16)))
void svst1b(svbool_t, int8_t *, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_u32)))
void svst1b(svbool_t, uint8_t *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_u64)))
void svst1b(svbool_t, uint8_t *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_u16)))
void svst1b(svbool_t, uint8_t *, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32base_offset_u32)))
void svst1b_scatter_offset(svbool_t, svuint32_t, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64base_offset_u64)))
void svst1b_scatter_offset(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32base_offset_s32)))
void svst1b_scatter_offset(svbool_t, svuint32_t, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64base_offset_s64)))
void svst1b_scatter_offset(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32base_u32)))
void svst1b_scatter(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64base_u64)))
void svst1b_scatter(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32base_s32)))
void svst1b_scatter(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64base_s64)))
void svst1b_scatter(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_s32offset_s32)))
void svst1b_scatter_offset(svbool_t, int8_t *, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_s32offset_u32)))
void svst1b_scatter_offset(svbool_t, uint8_t *, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32offset_s32)))
void svst1b_scatter_offset(svbool_t, int8_t *, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u32offset_u32)))
void svst1b_scatter_offset(svbool_t, uint8_t *, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_s64offset_s64)))
void svst1b_scatter_offset(svbool_t, int8_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_s64offset_u64)))
void svst1b_scatter_offset(svbool_t, uint8_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64offset_s64)))
void svst1b_scatter_offset(svbool_t, int8_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_scatter_u64offset_u64)))
void svst1b_scatter_offset(svbool_t, uint8_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_s32)))
void svst1b_vnum(svbool_t, int8_t *, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_s64)))
void svst1b_vnum(svbool_t, int8_t *, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_s16)))
void svst1b_vnum(svbool_t, int8_t *, int64_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_u32)))
void svst1b_vnum(svbool_t, uint8_t *, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_u64)))
void svst1b_vnum(svbool_t, uint8_t *, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1b_vnum_u16)))
void svst1b_vnum(svbool_t, uint8_t *, int64_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_s32)))
void svst1h(svbool_t, int16_t *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_s64)))
void svst1h(svbool_t, int16_t *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_u32)))
void svst1h(svbool_t, uint16_t *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_u64)))
void svst1h(svbool_t, uint16_t *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_index_u32)))
void svst1h_scatter_index(svbool_t, svuint32_t, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_index_u64)))
void svst1h_scatter_index(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_index_s32)))
void svst1h_scatter_index(svbool_t, svuint32_t, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_index_s64)))
void svst1h_scatter_index(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_offset_u32)))
void svst1h_scatter_offset(svbool_t, svuint32_t, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_offset_u64)))
void svst1h_scatter_offset(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_offset_s32)))
void svst1h_scatter_offset(svbool_t, svuint32_t, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_offset_s64)))
void svst1h_scatter_offset(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_u32)))
void svst1h_scatter(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_u64)))
void svst1h_scatter(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32base_s32)))
void svst1h_scatter(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64base_s64)))
void svst1h_scatter(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s32index_s32)))
void svst1h_scatter_index(svbool_t, int16_t *, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s32index_u32)))
void svst1h_scatter_index(svbool_t, uint16_t *, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32index_s32)))
void svst1h_scatter_index(svbool_t, int16_t *, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32index_u32)))
void svst1h_scatter_index(svbool_t, uint16_t *, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s64index_s64)))
void svst1h_scatter_index(svbool_t, int16_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s64index_u64)))
void svst1h_scatter_index(svbool_t, uint16_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64index_s64)))
void svst1h_scatter_index(svbool_t, int16_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64index_u64)))
void svst1h_scatter_index(svbool_t, uint16_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s32offset_s32)))
void svst1h_scatter_offset(svbool_t, int16_t *, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s32offset_u32)))
void svst1h_scatter_offset(svbool_t, uint16_t *, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32offset_s32)))
void svst1h_scatter_offset(svbool_t, int16_t *, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u32offset_u32)))
void svst1h_scatter_offset(svbool_t, uint16_t *, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s64offset_s64)))
void svst1h_scatter_offset(svbool_t, int16_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_s64offset_u64)))
void svst1h_scatter_offset(svbool_t, uint16_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64offset_s64)))
void svst1h_scatter_offset(svbool_t, int16_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_scatter_u64offset_u64)))
void svst1h_scatter_offset(svbool_t, uint16_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_vnum_s32)))
void svst1h_vnum(svbool_t, int16_t *, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_vnum_s64)))
void svst1h_vnum(svbool_t, int16_t *, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_vnum_u32)))
void svst1h_vnum(svbool_t, uint16_t *, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1h_vnum_u64)))
void svst1h_vnum(svbool_t, uint16_t *, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_s64)))
void svst1w(svbool_t, int32_t *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_u64)))
void svst1w(svbool_t, uint32_t *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_index_u64)))
void svst1w_scatter_index(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_index_s64)))
void svst1w_scatter_index(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_offset_u64)))
void svst1w_scatter_offset(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_offset_s64)))
void svst1w_scatter_offset(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_u64)))
void svst1w_scatter(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64base_s64)))
void svst1w_scatter(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_s64index_s64)))
void svst1w_scatter_index(svbool_t, int32_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_s64index_u64)))
void svst1w_scatter_index(svbool_t, uint32_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64index_s64)))
void svst1w_scatter_index(svbool_t, int32_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64index_u64)))
void svst1w_scatter_index(svbool_t, uint32_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_s64offset_s64)))
void svst1w_scatter_offset(svbool_t, int32_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_s64offset_u64)))
void svst1w_scatter_offset(svbool_t, uint32_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64offset_s64)))
void svst1w_scatter_offset(svbool_t, int32_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_scatter_u64offset_u64)))
void svst1w_scatter_offset(svbool_t, uint32_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_vnum_s64)))
void svst1w_vnum(svbool_t, int32_t *, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1w_vnum_u64)))
void svst1w_vnum(svbool_t, uint32_t *, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_u8)))
void svst2(svbool_t, uint8_t *, svuint8x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_u32)))
void svst2(svbool_t, uint32_t *, svuint32x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_u64)))
void svst2(svbool_t, uint64_t *, svuint64x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_u16)))
void svst2(svbool_t, uint16_t *, svuint16x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_s8)))
void svst2(svbool_t, int8_t *, svint8x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_f64)))
void svst2(svbool_t, float64_t *, svfloat64x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_f32)))
void svst2(svbool_t, float32_t *, svfloat32x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_f16)))
void svst2(svbool_t, float16_t *, svfloat16x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_s32)))
void svst2(svbool_t, int32_t *, svint32x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_s64)))
void svst2(svbool_t, int64_t *, svint64x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_s16)))
void svst2(svbool_t, int16_t *, svint16x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_u8)))
void svst2_vnum(svbool_t, uint8_t *, int64_t, svuint8x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_u32)))
void svst2_vnum(svbool_t, uint32_t *, int64_t, svuint32x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_u64)))
void svst2_vnum(svbool_t, uint64_t *, int64_t, svuint64x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_u16)))
void svst2_vnum(svbool_t, uint16_t *, int64_t, svuint16x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_s8)))
void svst2_vnum(svbool_t, int8_t *, int64_t, svint8x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_f64)))
void svst2_vnum(svbool_t, float64_t *, int64_t, svfloat64x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_f32)))
void svst2_vnum(svbool_t, float32_t *, int64_t, svfloat32x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_f16)))
void svst2_vnum(svbool_t, float16_t *, int64_t, svfloat16x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_s32)))
void svst2_vnum(svbool_t, int32_t *, int64_t, svint32x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_s64)))
void svst2_vnum(svbool_t, int64_t *, int64_t, svint64x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_s16)))
void svst2_vnum(svbool_t, int16_t *, int64_t, svint16x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_u8)))
void svst3(svbool_t, uint8_t *, svuint8x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_u32)))
void svst3(svbool_t, uint32_t *, svuint32x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_u64)))
void svst3(svbool_t, uint64_t *, svuint64x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_u16)))
void svst3(svbool_t, uint16_t *, svuint16x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_s8)))
void svst3(svbool_t, int8_t *, svint8x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_f64)))
void svst3(svbool_t, float64_t *, svfloat64x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_f32)))
void svst3(svbool_t, float32_t *, svfloat32x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_f16)))
void svst3(svbool_t, float16_t *, svfloat16x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_s32)))
void svst3(svbool_t, int32_t *, svint32x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_s64)))
void svst3(svbool_t, int64_t *, svint64x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_s16)))
void svst3(svbool_t, int16_t *, svint16x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_u8)))
void svst3_vnum(svbool_t, uint8_t *, int64_t, svuint8x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_u32)))
void svst3_vnum(svbool_t, uint32_t *, int64_t, svuint32x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_u64)))
void svst3_vnum(svbool_t, uint64_t *, int64_t, svuint64x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_u16)))
void svst3_vnum(svbool_t, uint16_t *, int64_t, svuint16x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_s8)))
void svst3_vnum(svbool_t, int8_t *, int64_t, svint8x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_f64)))
void svst3_vnum(svbool_t, float64_t *, int64_t, svfloat64x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_f32)))
void svst3_vnum(svbool_t, float32_t *, int64_t, svfloat32x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_f16)))
void svst3_vnum(svbool_t, float16_t *, int64_t, svfloat16x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_s32)))
void svst3_vnum(svbool_t, int32_t *, int64_t, svint32x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_s64)))
void svst3_vnum(svbool_t, int64_t *, int64_t, svint64x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_s16)))
void svst3_vnum(svbool_t, int16_t *, int64_t, svint16x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_u8)))
void svst4(svbool_t, uint8_t *, svuint8x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_u32)))
void svst4(svbool_t, uint32_t *, svuint32x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_u64)))
void svst4(svbool_t, uint64_t *, svuint64x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_u16)))
void svst4(svbool_t, uint16_t *, svuint16x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_s8)))
void svst4(svbool_t, int8_t *, svint8x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_f64)))
void svst4(svbool_t, float64_t *, svfloat64x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_f32)))
void svst4(svbool_t, float32_t *, svfloat32x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_f16)))
void svst4(svbool_t, float16_t *, svfloat16x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_s32)))
void svst4(svbool_t, int32_t *, svint32x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_s64)))
void svst4(svbool_t, int64_t *, svint64x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_s16)))
void svst4(svbool_t, int16_t *, svint16x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_u8)))
void svst4_vnum(svbool_t, uint8_t *, int64_t, svuint8x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_u32)))
void svst4_vnum(svbool_t, uint32_t *, int64_t, svuint32x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_u64)))
void svst4_vnum(svbool_t, uint64_t *, int64_t, svuint64x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_u16)))
void svst4_vnum(svbool_t, uint16_t *, int64_t, svuint16x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_s8)))
void svst4_vnum(svbool_t, int8_t *, int64_t, svint8x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_f64)))
void svst4_vnum(svbool_t, float64_t *, int64_t, svfloat64x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_f32)))
void svst4_vnum(svbool_t, float32_t *, int64_t, svfloat32x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_f16)))
void svst4_vnum(svbool_t, float16_t *, int64_t, svfloat16x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_s32)))
void svst4_vnum(svbool_t, int32_t *, int64_t, svint32x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_s64)))
void svst4_vnum(svbool_t, int64_t *, int64_t, svint64x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_s16)))
void svst4_vnum(svbool_t, int16_t *, int64_t, svint16x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_u8)))
void svstnt1(svbool_t, uint8_t *, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_u32)))
void svstnt1(svbool_t, uint32_t *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_u64)))
void svstnt1(svbool_t, uint64_t *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_u16)))
void svstnt1(svbool_t, uint16_t *, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_s8)))
void svstnt1(svbool_t, int8_t *, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_f64)))
void svstnt1(svbool_t, float64_t *, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_f32)))
void svstnt1(svbool_t, float32_t *, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_f16)))
void svstnt1(svbool_t, float16_t *, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_s32)))
void svstnt1(svbool_t, int32_t *, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_s64)))
void svstnt1(svbool_t, int64_t *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_s16)))
void svstnt1(svbool_t, int16_t *, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_u8)))
void svstnt1_vnum(svbool_t, uint8_t *, int64_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_u32)))
void svstnt1_vnum(svbool_t, uint32_t *, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_u64)))
void svstnt1_vnum(svbool_t, uint64_t *, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_u16)))
void svstnt1_vnum(svbool_t, uint16_t *, int64_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_s8)))
void svstnt1_vnum(svbool_t, int8_t *, int64_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_f64)))
void svstnt1_vnum(svbool_t, float64_t *, int64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_f32)))
void svstnt1_vnum(svbool_t, float32_t *, int64_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_f16)))
void svstnt1_vnum(svbool_t, float16_t *, int64_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_s32)))
void svstnt1_vnum(svbool_t, int32_t *, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_s64)))
void svstnt1_vnum(svbool_t, int64_t *, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_s16)))
void svstnt1_vnum(svbool_t, int16_t *, int64_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f64_m)))
svfloat64_t svsub_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f32_m)))
svfloat32_t svsub_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f16_m)))
svfloat16_t svsub_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f64_x)))
svfloat64_t svsub_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f32_x)))
svfloat32_t svsub_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f16_x)))
svfloat16_t svsub_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f64_z)))
svfloat64_t svsub_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f32_z)))
svfloat32_t svsub_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_f16_z)))
svfloat16_t svsub_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u8_m)))
svuint8_t svsub_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u32_m)))
svuint32_t svsub_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u64_m)))
svuint64_t svsub_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u16_m)))
svuint16_t svsub_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s8_m)))
svint8_t svsub_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s32_m)))
svint32_t svsub_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s64_m)))
svint64_t svsub_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s16_m)))
svint16_t svsub_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u8_x)))
svuint8_t svsub_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u32_x)))
svuint32_t svsub_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u64_x)))
svuint64_t svsub_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u16_x)))
svuint16_t svsub_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s8_x)))
svint8_t svsub_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s32_x)))
svint32_t svsub_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s64_x)))
svint64_t svsub_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s16_x)))
svint16_t svsub_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u8_z)))
svuint8_t svsub_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u32_z)))
svuint32_t svsub_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u64_z)))
svuint64_t svsub_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_u16_z)))
svuint16_t svsub_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s8_z)))
svint8_t svsub_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s32_z)))
svint32_t svsub_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s64_z)))
svint64_t svsub_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_n_s16_z)))
svint16_t svsub_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f64_m)))
svfloat64_t svsub_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f32_m)))
svfloat32_t svsub_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f16_m)))
svfloat16_t svsub_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f64_x)))
svfloat64_t svsub_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f32_x)))
svfloat32_t svsub_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f16_x)))
svfloat16_t svsub_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f64_z)))
svfloat64_t svsub_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f32_z)))
svfloat32_t svsub_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_f16_z)))
svfloat16_t svsub_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u8_m)))
svuint8_t svsub_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u32_m)))
svuint32_t svsub_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u64_m)))
svuint64_t svsub_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u16_m)))
svuint16_t svsub_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s8_m)))
svint8_t svsub_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s32_m)))
svint32_t svsub_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s64_m)))
svint64_t svsub_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s16_m)))
svint16_t svsub_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u8_x)))
svuint8_t svsub_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u32_x)))
svuint32_t svsub_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u64_x)))
svuint64_t svsub_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u16_x)))
svuint16_t svsub_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s8_x)))
svint8_t svsub_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s32_x)))
svint32_t svsub_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s64_x)))
svint64_t svsub_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s16_x)))
svint16_t svsub_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u8_z)))
svuint8_t svsub_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u32_z)))
svuint32_t svsub_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u64_z)))
svuint64_t svsub_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_u16_z)))
svuint16_t svsub_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s8_z)))
svint8_t svsub_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s32_z)))
svint32_t svsub_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s64_z)))
svint64_t svsub_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsub_s16_z)))
svint16_t svsub_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f64_m)))
svfloat64_t svsubr_m(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f32_m)))
svfloat32_t svsubr_m(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f16_m)))
svfloat16_t svsubr_m(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f64_x)))
svfloat64_t svsubr_x(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f32_x)))
svfloat32_t svsubr_x(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f16_x)))
svfloat16_t svsubr_x(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f64_z)))
svfloat64_t svsubr_z(svbool_t, svfloat64_t, float64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f32_z)))
svfloat32_t svsubr_z(svbool_t, svfloat32_t, float32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_f16_z)))
svfloat16_t svsubr_z(svbool_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u8_m)))
svuint8_t svsubr_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u32_m)))
svuint32_t svsubr_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u64_m)))
svuint64_t svsubr_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u16_m)))
svuint16_t svsubr_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s8_m)))
svint8_t svsubr_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s32_m)))
svint32_t svsubr_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s64_m)))
svint64_t svsubr_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s16_m)))
svint16_t svsubr_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u8_x)))
svuint8_t svsubr_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u32_x)))
svuint32_t svsubr_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u64_x)))
svuint64_t svsubr_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u16_x)))
svuint16_t svsubr_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s8_x)))
svint8_t svsubr_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s32_x)))
svint32_t svsubr_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s64_x)))
svint64_t svsubr_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s16_x)))
svint16_t svsubr_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u8_z)))
svuint8_t svsubr_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u32_z)))
svuint32_t svsubr_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u64_z)))
svuint64_t svsubr_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_u16_z)))
svuint16_t svsubr_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s8_z)))
svint8_t svsubr_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s32_z)))
svint32_t svsubr_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s64_z)))
svint64_t svsubr_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_n_s16_z)))
svint16_t svsubr_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f64_m)))
svfloat64_t svsubr_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f32_m)))
svfloat32_t svsubr_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f16_m)))
svfloat16_t svsubr_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f64_x)))
svfloat64_t svsubr_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f32_x)))
svfloat32_t svsubr_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f16_x)))
svfloat16_t svsubr_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f64_z)))
svfloat64_t svsubr_z(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f32_z)))
svfloat32_t svsubr_z(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_f16_z)))
svfloat16_t svsubr_z(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u8_m)))
svuint8_t svsubr_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u32_m)))
svuint32_t svsubr_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u64_m)))
svuint64_t svsubr_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u16_m)))
svuint16_t svsubr_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s8_m)))
svint8_t svsubr_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s32_m)))
svint32_t svsubr_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s64_m)))
svint64_t svsubr_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s16_m)))
svint16_t svsubr_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u8_x)))
svuint8_t svsubr_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u32_x)))
svuint32_t svsubr_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u64_x)))
svuint64_t svsubr_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u16_x)))
svuint16_t svsubr_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s8_x)))
svint8_t svsubr_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s32_x)))
svint32_t svsubr_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s64_x)))
svint64_t svsubr_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s16_x)))
svint16_t svsubr_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u8_z)))
svuint8_t svsubr_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u32_z)))
svuint32_t svsubr_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u64_z)))
svuint64_t svsubr_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_u16_z)))
svuint16_t svsubr_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s8_z)))
svint8_t svsubr_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s32_z)))
svint32_t svsubr_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s64_z)))
svint64_t svsubr_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubr_s16_z)))
svint16_t svsubr_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_u8)))
svuint8_t svtbl(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_u32)))
svuint32_t svtbl(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_u64)))
svuint64_t svtbl(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_u16)))
svuint16_t svtbl(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_s8)))
svint8_t svtbl(svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_f64)))
svfloat64_t svtbl(svfloat64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_f32)))
svfloat32_t svtbl(svfloat32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_f16)))
svfloat16_t svtbl(svfloat16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_s32)))
svint32_t svtbl(svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_s64)))
svint64_t svtbl(svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_s16)))
svint16_t svtbl(svint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtmad_f64)))
svfloat64_t svtmad(svfloat64_t, svfloat64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtmad_f32)))
svfloat32_t svtmad(svfloat32_t, svfloat32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtmad_f16)))
svfloat16_t svtmad(svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_u8)))
svuint8_t svtrn1(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_u32)))
svuint32_t svtrn1(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_u64)))
svuint64_t svtrn1(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_u16)))
svuint16_t svtrn1(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_s8)))
svint8_t svtrn1(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_f64)))
svfloat64_t svtrn1(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_f32)))
svfloat32_t svtrn1(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_f16)))
svfloat16_t svtrn1(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_s32)))
svint32_t svtrn1(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_s64)))
svint64_t svtrn1(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_s16)))
svint16_t svtrn1(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_u8)))
svuint8_t svtrn2(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_u32)))
svuint32_t svtrn2(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_u64)))
svuint64_t svtrn2(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_u16)))
svuint16_t svtrn2(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_s8)))
svint8_t svtrn2(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_f64)))
svfloat64_t svtrn2(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_f32)))
svfloat32_t svtrn2(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_f16)))
svfloat16_t svtrn2(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_s32)))
svint32_t svtrn2(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_s64)))
svint64_t svtrn2(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_s16)))
svint16_t svtrn2(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtsmul_f64)))
svfloat64_t svtsmul(svfloat64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtsmul_f32)))
svfloat32_t svtsmul(svfloat32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtsmul_f16)))
svfloat16_t svtsmul(svfloat16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtssel_f64)))
svfloat64_t svtssel(svfloat64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtssel_f32)))
svfloat32_t svtssel(svfloat32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtssel_f16)))
svfloat16_t svtssel(svfloat16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_b)))
svbool_t svunpkhi(svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_s32)))
svint32_t svunpkhi(svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_s64)))
svint64_t svunpkhi(svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_s16)))
svint16_t svunpkhi(svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_u32)))
svuint32_t svunpkhi(svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_u64)))
svuint64_t svunpkhi(svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpkhi_u16)))
svuint16_t svunpkhi(svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_b)))
svbool_t svunpklo(svbool_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_s32)))
svint32_t svunpklo(svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_s64)))
svint64_t svunpklo(svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_s16)))
svint16_t svunpklo(svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_u32)))
svuint32_t svunpklo(svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_u64)))
svuint64_t svunpklo(svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svunpklo_u16)))
svuint16_t svunpklo(svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_u8)))
svuint8_t svuzp1(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_u32)))
svuint32_t svuzp1(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_u64)))
svuint64_t svuzp1(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_u16)))
svuint16_t svuzp1(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_s8)))
svint8_t svuzp1(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_f64)))
svfloat64_t svuzp1(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_f32)))
svfloat32_t svuzp1(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_f16)))
svfloat16_t svuzp1(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_s32)))
svint32_t svuzp1(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_s64)))
svint64_t svuzp1(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_s16)))
svint16_t svuzp1(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_u8)))
svuint8_t svuzp2(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_u32)))
svuint32_t svuzp2(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_u64)))
svuint64_t svuzp2(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_u16)))
svuint16_t svuzp2(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_s8)))
svint8_t svuzp2(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_f64)))
svfloat64_t svuzp2(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_f32)))
svfloat32_t svuzp2(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_f16)))
svfloat16_t svuzp2(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_s32)))
svint32_t svuzp2(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_s64)))
svint64_t svuzp2(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_s16)))
svint16_t svuzp2(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b8_s32)))
svbool_t svwhilele_b8(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b32_s32)))
svbool_t svwhilele_b32(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b64_s32)))
svbool_t svwhilele_b64(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b16_s32)))
svbool_t svwhilele_b16(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b8_s64)))
svbool_t svwhilele_b8(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b32_s64)))
svbool_t svwhilele_b32(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b64_s64)))
svbool_t svwhilele_b64(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b16_s64)))
svbool_t svwhilele_b16(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b8_u32)))
svbool_t svwhilele_b8(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b32_u32)))
svbool_t svwhilele_b32(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b64_u32)))
svbool_t svwhilele_b64(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b16_u32)))
svbool_t svwhilele_b16(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b8_u64)))
svbool_t svwhilele_b8(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b32_u64)))
svbool_t svwhilele_b32(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b64_u64)))
svbool_t svwhilele_b64(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilele_b16_u64)))
svbool_t svwhilele_b16(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b8_u32)))
svbool_t svwhilelt_b8(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b32_u32)))
svbool_t svwhilelt_b32(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b64_u32)))
svbool_t svwhilelt_b64(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b16_u32)))
svbool_t svwhilelt_b16(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b8_u64)))
svbool_t svwhilelt_b8(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b32_u64)))
svbool_t svwhilelt_b32(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b64_u64)))
svbool_t svwhilelt_b64(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b16_u64)))
svbool_t svwhilelt_b16(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b8_s32)))
svbool_t svwhilelt_b8(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b32_s32)))
svbool_t svwhilelt_b32(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b64_s32)))
svbool_t svwhilelt_b64(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b16_s32)))
svbool_t svwhilelt_b16(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b8_s64)))
svbool_t svwhilelt_b8(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b32_s64)))
svbool_t svwhilelt_b32(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b64_s64)))
svbool_t svwhilelt_b64(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilelt_b16_s64)))
svbool_t svwhilelt_b16(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_u8)))
svuint8_t svzip1(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_u32)))
svuint32_t svzip1(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_u64)))
svuint64_t svzip1(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_u16)))
svuint16_t svzip1(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_s8)))
svint8_t svzip1(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_f64)))
svfloat64_t svzip1(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_f32)))
svfloat32_t svzip1(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_f16)))
svfloat16_t svzip1(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_s32)))
svint32_t svzip1(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_s64)))
svint64_t svzip1(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_s16)))
svint16_t svzip1(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_u8)))
svuint8_t svzip2(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_u32)))
svuint32_t svzip2(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_u64)))
svuint64_t svzip2(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_u16)))
svuint16_t svzip2(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_s8)))
svint8_t svzip2(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_f64)))
svfloat64_t svzip2(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_f32)))
svfloat32_t svzip2(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_f16)))
svfloat16_t svzip2(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_s32)))
svint32_t svzip2(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_s64)))
svint64_t svzip2(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_s16)))
svint16_t svzip2(svint16_t, svint16_t);

#if defined (__ARM_FEATURE_SVE2_BITPERM)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_n_u8)))
svuint8_t svbdep_n_u8(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_n_u32)))
svuint32_t svbdep_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_n_u64)))
svuint64_t svbdep_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_n_u16)))
svuint16_t svbdep_n_u16(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_u8)))
svuint8_t svbdep_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_u32)))
svuint32_t svbdep_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_u64)))
svuint64_t svbdep_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_u16)))
svuint16_t svbdep_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_n_u8)))
svuint8_t svbext_n_u8(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_n_u32)))
svuint32_t svbext_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_n_u64)))
svuint64_t svbext_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_n_u16)))
svuint16_t svbext_n_u16(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_u8)))
svuint8_t svbext_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_u32)))
svuint32_t svbext_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_u64)))
svuint64_t svbext_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_u16)))
svuint16_t svbext_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_n_u8)))
svuint8_t svbgrp_n_u8(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_n_u32)))
svuint32_t svbgrp_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_n_u64)))
svuint64_t svbgrp_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_n_u16)))
svuint16_t svbgrp_n_u16(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_u8)))
svuint8_t svbgrp_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_u32)))
svuint32_t svbgrp_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_u64)))
svuint64_t svbgrp_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_u16)))
svuint16_t svbgrp_u16(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_n_u8)))
svuint8_t svbdep(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_n_u32)))
svuint32_t svbdep(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_n_u64)))
svuint64_t svbdep(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_n_u16)))
svuint16_t svbdep(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_u8)))
svuint8_t svbdep(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_u32)))
svuint32_t svbdep(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_u64)))
svuint64_t svbdep(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbdep_u16)))
svuint16_t svbdep(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_n_u8)))
svuint8_t svbext(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_n_u32)))
svuint32_t svbext(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_n_u64)))
svuint64_t svbext(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_n_u16)))
svuint16_t svbext(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_u8)))
svuint8_t svbext(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_u32)))
svuint32_t svbext(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_u64)))
svuint64_t svbext(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbext_u16)))
svuint16_t svbext(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_n_u8)))
svuint8_t svbgrp(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_n_u32)))
svuint32_t svbgrp(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_n_u64)))
svuint64_t svbgrp(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_n_u16)))
svuint16_t svbgrp(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_u8)))
svuint8_t svbgrp(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_u32)))
svuint32_t svbgrp(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_u64)))
svuint64_t svbgrp(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbgrp_u16)))
svuint16_t svbgrp(svuint16_t, svuint16_t);
#endif  //defined (__ARM_FEATURE_SVE2_BITPERM)

#if defined(__ARM_FEATURE_SVE2)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_s8)))
svint8_t svaba_n_s8(svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_s32)))
svint32_t svaba_n_s32(svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_s64)))
svint64_t svaba_n_s64(svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_s16)))
svint16_t svaba_n_s16(svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_u8)))
svuint8_t svaba_n_u8(svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_u32)))
svuint32_t svaba_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_u64)))
svuint64_t svaba_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_u16)))
svuint16_t svaba_n_u16(svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_s8)))
svint8_t svaba_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_s32)))
svint32_t svaba_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_s64)))
svint64_t svaba_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_s16)))
svint16_t svaba_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_u8)))
svuint8_t svaba_u8(svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_u32)))
svuint32_t svaba_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_u64)))
svuint64_t svaba_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_u16)))
svuint16_t svaba_u16(svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_s32)))
svint32_t svabalb_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_s64)))
svint64_t svabalb_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_s16)))
svint16_t svabalb_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_u32)))
svuint32_t svabalb_n_u32(svuint32_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_u64)))
svuint64_t svabalb_n_u64(svuint64_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_u16)))
svuint16_t svabalb_n_u16(svuint16_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_s32)))
svint32_t svabalb_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_s64)))
svint64_t svabalb_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_s16)))
svint16_t svabalb_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_u32)))
svuint32_t svabalb_u32(svuint32_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_u64)))
svuint64_t svabalb_u64(svuint64_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_u16)))
svuint16_t svabalb_u16(svuint16_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_s32)))
svint32_t svabalt_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_s64)))
svint64_t svabalt_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_s16)))
svint16_t svabalt_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_u32)))
svuint32_t svabalt_n_u32(svuint32_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_u64)))
svuint64_t svabalt_n_u64(svuint64_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_u16)))
svuint16_t svabalt_n_u16(svuint16_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_s32)))
svint32_t svabalt_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_s64)))
svint64_t svabalt_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_s16)))
svint16_t svabalt_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_u32)))
svuint32_t svabalt_u32(svuint32_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_u64)))
svuint64_t svabalt_u64(svuint64_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_u16)))
svuint16_t svabalt_u16(svuint16_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_s32)))
svint32_t svabdlb_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_s64)))
svint64_t svabdlb_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_s16)))
svint16_t svabdlb_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_u32)))
svuint32_t svabdlb_n_u32(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_u64)))
svuint64_t svabdlb_n_u64(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_u16)))
svuint16_t svabdlb_n_u16(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_s32)))
svint32_t svabdlb_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_s64)))
svint64_t svabdlb_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_s16)))
svint16_t svabdlb_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_u32)))
svuint32_t svabdlb_u32(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_u64)))
svuint64_t svabdlb_u64(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_u16)))
svuint16_t svabdlb_u16(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_s32)))
svint32_t svabdlt_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_s64)))
svint64_t svabdlt_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_s16)))
svint16_t svabdlt_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_u32)))
svuint32_t svabdlt_n_u32(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_u64)))
svuint64_t svabdlt_n_u64(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_u16)))
svuint16_t svabdlt_n_u16(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_s32)))
svint32_t svabdlt_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_s64)))
svint64_t svabdlt_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_s16)))
svint16_t svabdlt_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_u32)))
svuint32_t svabdlt_u32(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_u64)))
svuint64_t svabdlt_u64(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_u16)))
svuint16_t svabdlt_u16(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s32_m)))
svint32_t svadalp_s32_m(svbool_t, svint32_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s64_m)))
svint64_t svadalp_s64_m(svbool_t, svint64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s16_m)))
svint16_t svadalp_s16_m(svbool_t, svint16_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s32_x)))
svint32_t svadalp_s32_x(svbool_t, svint32_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s64_x)))
svint64_t svadalp_s64_x(svbool_t, svint64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s16_x)))
svint16_t svadalp_s16_x(svbool_t, svint16_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s32_z)))
svint32_t svadalp_s32_z(svbool_t, svint32_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s64_z)))
svint64_t svadalp_s64_z(svbool_t, svint64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s16_z)))
svint16_t svadalp_s16_z(svbool_t, svint16_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u32_m)))
svuint32_t svadalp_u32_m(svbool_t, svuint32_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u64_m)))
svuint64_t svadalp_u64_m(svbool_t, svuint64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u16_m)))
svuint16_t svadalp_u16_m(svbool_t, svuint16_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u32_x)))
svuint32_t svadalp_u32_x(svbool_t, svuint32_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u64_x)))
svuint64_t svadalp_u64_x(svbool_t, svuint64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u16_x)))
svuint16_t svadalp_u16_x(svbool_t, svuint16_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u32_z)))
svuint32_t svadalp_u32_z(svbool_t, svuint32_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u64_z)))
svuint64_t svadalp_u64_z(svbool_t, svuint64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u16_z)))
svuint16_t svadalp_u16_z(svbool_t, svuint16_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclb_n_u32)))
svuint32_t svadclb_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclb_n_u64)))
svuint64_t svadclb_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclb_u32)))
svuint32_t svadclb_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclb_u64)))
svuint64_t svadclb_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclt_n_u32)))
svuint32_t svadclt_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclt_n_u64)))
svuint64_t svadclt_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclt_u32)))
svuint32_t svadclt_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclt_u64)))
svuint64_t svadclt_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_u32)))
svuint16_t svaddhnb_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_u64)))
svuint32_t svaddhnb_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_u16)))
svuint8_t svaddhnb_n_u16(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_s32)))
svint16_t svaddhnb_n_s32(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_s64)))
svint32_t svaddhnb_n_s64(svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_s16)))
svint8_t svaddhnb_n_s16(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_u32)))
svuint16_t svaddhnb_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_u64)))
svuint32_t svaddhnb_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_u16)))
svuint8_t svaddhnb_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_s32)))
svint16_t svaddhnb_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_s64)))
svint32_t svaddhnb_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_s16)))
svint8_t svaddhnb_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_u32)))
svuint16_t svaddhnt_n_u32(svuint16_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_u64)))
svuint32_t svaddhnt_n_u64(svuint32_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_u16)))
svuint8_t svaddhnt_n_u16(svuint8_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_s32)))
svint16_t svaddhnt_n_s32(svint16_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_s64)))
svint32_t svaddhnt_n_s64(svint32_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_s16)))
svint8_t svaddhnt_n_s16(svint8_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_u32)))
svuint16_t svaddhnt_u32(svuint16_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_u64)))
svuint32_t svaddhnt_u64(svuint32_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_u16)))
svuint8_t svaddhnt_u16(svuint8_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_s32)))
svint16_t svaddhnt_s32(svint16_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_s64)))
svint32_t svaddhnt_s64(svint32_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_s16)))
svint8_t svaddhnt_s16(svint8_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_s32)))
svint32_t svaddlb_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_s64)))
svint64_t svaddlb_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_s16)))
svint16_t svaddlb_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_u32)))
svuint32_t svaddlb_n_u32(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_u64)))
svuint64_t svaddlb_n_u64(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_u16)))
svuint16_t svaddlb_n_u16(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_s32)))
svint32_t svaddlb_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_s64)))
svint64_t svaddlb_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_s16)))
svint16_t svaddlb_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_u32)))
svuint32_t svaddlb_u32(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_u64)))
svuint64_t svaddlb_u64(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_u16)))
svuint16_t svaddlb_u16(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_n_s32)))
svint32_t svaddlbt_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_n_s64)))
svint64_t svaddlbt_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_n_s16)))
svint16_t svaddlbt_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_s32)))
svint32_t svaddlbt_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_s64)))
svint64_t svaddlbt_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_s16)))
svint16_t svaddlbt_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_s32)))
svint32_t svaddlt_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_s64)))
svint64_t svaddlt_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_s16)))
svint16_t svaddlt_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_u32)))
svuint32_t svaddlt_n_u32(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_u64)))
svuint64_t svaddlt_n_u64(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_u16)))
svuint16_t svaddlt_n_u16(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_s32)))
svint32_t svaddlt_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_s64)))
svint64_t svaddlt_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_s16)))
svint16_t svaddlt_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_u32)))
svuint32_t svaddlt_u32(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_u64)))
svuint64_t svaddlt_u64(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_u16)))
svuint16_t svaddlt_u16(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f64_m)))
svfloat64_t svaddp_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f32_m)))
svfloat32_t svaddp_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f16_m)))
svfloat16_t svaddp_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f64_x)))
svfloat64_t svaddp_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f32_x)))
svfloat32_t svaddp_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f16_x)))
svfloat16_t svaddp_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u8_m)))
svuint8_t svaddp_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u32_m)))
svuint32_t svaddp_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u64_m)))
svuint64_t svaddp_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u16_m)))
svuint16_t svaddp_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s8_m)))
svint8_t svaddp_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s32_m)))
svint32_t svaddp_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s64_m)))
svint64_t svaddp_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s16_m)))
svint16_t svaddp_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u8_x)))
svuint8_t svaddp_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u32_x)))
svuint32_t svaddp_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u64_x)))
svuint64_t svaddp_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u16_x)))
svuint16_t svaddp_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s8_x)))
svint8_t svaddp_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s32_x)))
svint32_t svaddp_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s64_x)))
svint64_t svaddp_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s16_x)))
svint16_t svaddp_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_s32)))
svint32_t svaddwb_n_s32(svint32_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_s64)))
svint64_t svaddwb_n_s64(svint64_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_s16)))
svint16_t svaddwb_n_s16(svint16_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_u32)))
svuint32_t svaddwb_n_u32(svuint32_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_u64)))
svuint64_t svaddwb_n_u64(svuint64_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_u16)))
svuint16_t svaddwb_n_u16(svuint16_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_s32)))
svint32_t svaddwb_s32(svint32_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_s64)))
svint64_t svaddwb_s64(svint64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_s16)))
svint16_t svaddwb_s16(svint16_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_u32)))
svuint32_t svaddwb_u32(svuint32_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_u64)))
svuint64_t svaddwb_u64(svuint64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_u16)))
svuint16_t svaddwb_u16(svuint16_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_s32)))
svint32_t svaddwt_n_s32(svint32_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_s64)))
svint64_t svaddwt_n_s64(svint64_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_s16)))
svint16_t svaddwt_n_s16(svint16_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_u32)))
svuint32_t svaddwt_n_u32(svuint32_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_u64)))
svuint64_t svaddwt_n_u64(svuint64_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_u16)))
svuint16_t svaddwt_n_u16(svuint16_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_s32)))
svint32_t svaddwt_s32(svint32_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_s64)))
svint64_t svaddwt_s64(svint64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_s16)))
svint16_t svaddwt_s16(svint16_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_u32)))
svuint32_t svaddwt_u32(svuint32_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_u64)))
svuint64_t svaddwt_u64(svuint64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_u16)))
svuint16_t svaddwt_u16(svuint16_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_u8)))
svuint8_t svbcax_n_u8(svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_u32)))
svuint32_t svbcax_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_u64)))
svuint64_t svbcax_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_u16)))
svuint16_t svbcax_n_u16(svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_s8)))
svint8_t svbcax_n_s8(svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_s32)))
svint32_t svbcax_n_s32(svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_s64)))
svint64_t svbcax_n_s64(svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_s16)))
svint16_t svbcax_n_s16(svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_u8)))
svuint8_t svbcax_u8(svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_u32)))
svuint32_t svbcax_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_u64)))
svuint64_t svbcax_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_u16)))
svuint16_t svbcax_u16(svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_s8)))
svint8_t svbcax_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_s32)))
svint32_t svbcax_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_s64)))
svint64_t svbcax_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_s16)))
svint16_t svbcax_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_u8)))
svuint8_t svbsl1n_n_u8(svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_u32)))
svuint32_t svbsl1n_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_u64)))
svuint64_t svbsl1n_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_u16)))
svuint16_t svbsl1n_n_u16(svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_s8)))
svint8_t svbsl1n_n_s8(svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_s32)))
svint32_t svbsl1n_n_s32(svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_s64)))
svint64_t svbsl1n_n_s64(svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_s16)))
svint16_t svbsl1n_n_s16(svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_u8)))
svuint8_t svbsl1n_u8(svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_u32)))
svuint32_t svbsl1n_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_u64)))
svuint64_t svbsl1n_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_u16)))
svuint16_t svbsl1n_u16(svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_s8)))
svint8_t svbsl1n_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_s32)))
svint32_t svbsl1n_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_s64)))
svint64_t svbsl1n_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_s16)))
svint16_t svbsl1n_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_u8)))
svuint8_t svbsl2n_n_u8(svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_u32)))
svuint32_t svbsl2n_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_u64)))
svuint64_t svbsl2n_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_u16)))
svuint16_t svbsl2n_n_u16(svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_s8)))
svint8_t svbsl2n_n_s8(svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_s32)))
svint32_t svbsl2n_n_s32(svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_s64)))
svint64_t svbsl2n_n_s64(svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_s16)))
svint16_t svbsl2n_n_s16(svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_u8)))
svuint8_t svbsl2n_u8(svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_u32)))
svuint32_t svbsl2n_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_u64)))
svuint64_t svbsl2n_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_u16)))
svuint16_t svbsl2n_u16(svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_s8)))
svint8_t svbsl2n_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_s32)))
svint32_t svbsl2n_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_s64)))
svint64_t svbsl2n_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_s16)))
svint16_t svbsl2n_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_u8)))
svuint8_t svbsl_n_u8(svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_u32)))
svuint32_t svbsl_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_u64)))
svuint64_t svbsl_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_u16)))
svuint16_t svbsl_n_u16(svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_s8)))
svint8_t svbsl_n_s8(svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_s32)))
svint32_t svbsl_n_s32(svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_s64)))
svint64_t svbsl_n_s64(svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_s16)))
svint16_t svbsl_n_s16(svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_u8)))
svuint8_t svbsl_u8(svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_u32)))
svuint32_t svbsl_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_u64)))
svuint64_t svbsl_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_u16)))
svuint16_t svbsl_u16(svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_s8)))
svint8_t svbsl_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_s32)))
svint32_t svbsl_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_s64)))
svint64_t svbsl_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_s16)))
svint16_t svbsl_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_u8)))
svuint8_t svcadd_u8(svuint8_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_u32)))
svuint32_t svcadd_u32(svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_u64)))
svuint64_t svcadd_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_u16)))
svuint16_t svcadd_u16(svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_s8)))
svint8_t svcadd_s8(svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_s32)))
svint32_t svcadd_s32(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_s64)))
svint64_t svcadd_s64(svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_s16)))
svint16_t svcadd_s16(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcdot_s32)))
svint32_t svcdot_s32(svint32_t, svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcdot_s64)))
svint64_t svcdot_s64(svint64_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcdot_lane_s32)))
svint32_t svcdot_lane_s32(svint32_t, svint8_t, svint8_t, uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcdot_lane_s64)))
svint64_t svcdot_lane_s64(svint64_t, svint16_t, svint16_t, uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_u8)))
svuint8_t svcmla_u8(svuint8_t, svuint8_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_u32)))
svuint32_t svcmla_u32(svuint32_t, svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_u64)))
svuint64_t svcmla_u64(svuint64_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_u16)))
svuint16_t svcmla_u16(svuint16_t, svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_s8)))
svint8_t svcmla_s8(svint8_t, svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_s32)))
svint32_t svcmla_s32(svint32_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_s64)))
svint64_t svcmla_s64(svint64_t, svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_s16)))
svint16_t svcmla_s16(svint16_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_u32)))
svuint32_t svcmla_lane_u32(svuint32_t, svuint32_t, svuint32_t, uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_u16)))
svuint16_t svcmla_lane_u16(svuint16_t, svuint16_t, svuint16_t, uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_s32)))
svint32_t svcmla_lane_s32(svint32_t, svint32_t, svint32_t, uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_s16)))
svint16_t svcmla_lane_s16(svint16_t, svint16_t, svint16_t, uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtlt_f32_f16_m)))
svfloat32_t svcvtlt_f32_f16_m(svfloat32_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtlt_f32_f16_x)))
svfloat32_t svcvtlt_f32_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtlt_f64_f32_m)))
svfloat64_t svcvtlt_f64_f32_m(svfloat64_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtlt_f64_f32_x)))
svfloat64_t svcvtlt_f64_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtnt_f16_f32_m)))
svfloat16_t svcvtnt_f16_f32_m(svfloat16_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtnt_f32_f64_m)))
svfloat32_t svcvtnt_f32_f64_m(svfloat32_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtx_f32_f64_m)))
svfloat32_t svcvtx_f32_f64_m(svfloat32_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtx_f32_f64_x)))
svfloat32_t svcvtx_f32_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtx_f32_f64_z)))
svfloat32_t svcvtx_f32_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtxnt_f32_f64_m)))
svfloat32_t svcvtxnt_f32_f64_m(svfloat32_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_u8)))
svuint8_t sveor3_n_u8(svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_u32)))
svuint32_t sveor3_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_u64)))
svuint64_t sveor3_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_u16)))
svuint16_t sveor3_n_u16(svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_s8)))
svint8_t sveor3_n_s8(svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_s32)))
svint32_t sveor3_n_s32(svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_s64)))
svint64_t sveor3_n_s64(svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_s16)))
svint16_t sveor3_n_s16(svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_u8)))
svuint8_t sveor3_u8(svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_u32)))
svuint32_t sveor3_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_u64)))
svuint64_t sveor3_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_u16)))
svuint16_t sveor3_u16(svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_s8)))
svint8_t sveor3_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_s32)))
svint32_t sveor3_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_s64)))
svint64_t sveor3_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_s16)))
svint16_t sveor3_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_u8)))
svuint8_t sveorbt_n_u8(svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_u32)))
svuint32_t sveorbt_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_u64)))
svuint64_t sveorbt_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_u16)))
svuint16_t sveorbt_n_u16(svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_s8)))
svint8_t sveorbt_n_s8(svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_s32)))
svint32_t sveorbt_n_s32(svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_s64)))
svint64_t sveorbt_n_s64(svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_s16)))
svint16_t sveorbt_n_s16(svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_u8)))
svuint8_t sveorbt_u8(svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_u32)))
svuint32_t sveorbt_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_u64)))
svuint64_t sveorbt_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_u16)))
svuint16_t sveorbt_u16(svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_s8)))
svint8_t sveorbt_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_s32)))
svint32_t sveorbt_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_s64)))
svint64_t sveorbt_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_s16)))
svint16_t sveorbt_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_u8)))
svuint8_t sveortb_n_u8(svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_u32)))
svuint32_t sveortb_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_u64)))
svuint64_t sveortb_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_u16)))
svuint16_t sveortb_n_u16(svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_s8)))
svint8_t sveortb_n_s8(svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_s32)))
svint32_t sveortb_n_s32(svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_s64)))
svint64_t sveortb_n_s64(svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_s16)))
svint16_t sveortb_n_s16(svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_u8)))
svuint8_t sveortb_u8(svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_u32)))
svuint32_t sveortb_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_u64)))
svuint64_t sveortb_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_u16)))
svuint16_t sveortb_u16(svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_s8)))
svint8_t sveortb_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_s32)))
svint32_t sveortb_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_s64)))
svint64_t sveortb_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_s16)))
svint16_t sveortb_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s8_m)))
svint8_t svhadd_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s32_m)))
svint32_t svhadd_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s64_m)))
svint64_t svhadd_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s16_m)))
svint16_t svhadd_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s8_x)))
svint8_t svhadd_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s32_x)))
svint32_t svhadd_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s64_x)))
svint64_t svhadd_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s16_x)))
svint16_t svhadd_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s8_z)))
svint8_t svhadd_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s32_z)))
svint32_t svhadd_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s64_z)))
svint64_t svhadd_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s16_z)))
svint16_t svhadd_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u8_m)))
svuint8_t svhadd_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u32_m)))
svuint32_t svhadd_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u64_m)))
svuint64_t svhadd_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u16_m)))
svuint16_t svhadd_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u8_x)))
svuint8_t svhadd_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u32_x)))
svuint32_t svhadd_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u64_x)))
svuint64_t svhadd_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u16_x)))
svuint16_t svhadd_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u8_z)))
svuint8_t svhadd_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u32_z)))
svuint32_t svhadd_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u64_z)))
svuint64_t svhadd_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u16_z)))
svuint16_t svhadd_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s8_m)))
svint8_t svhadd_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s32_m)))
svint32_t svhadd_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s64_m)))
svint64_t svhadd_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s16_m)))
svint16_t svhadd_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s8_x)))
svint8_t svhadd_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s32_x)))
svint32_t svhadd_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s64_x)))
svint64_t svhadd_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s16_x)))
svint16_t svhadd_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s8_z)))
svint8_t svhadd_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s32_z)))
svint32_t svhadd_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s64_z)))
svint64_t svhadd_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s16_z)))
svint16_t svhadd_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u8_m)))
svuint8_t svhadd_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u32_m)))
svuint32_t svhadd_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u64_m)))
svuint64_t svhadd_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u16_m)))
svuint16_t svhadd_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u8_x)))
svuint8_t svhadd_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u32_x)))
svuint32_t svhadd_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u64_x)))
svuint64_t svhadd_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u16_x)))
svuint16_t svhadd_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u8_z)))
svuint8_t svhadd_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u32_z)))
svuint32_t svhadd_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u64_z)))
svuint64_t svhadd_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u16_z)))
svuint16_t svhadd_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistcnt_u32_z)))
svuint32_t svhistcnt_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistcnt_u64_z)))
svuint64_t svhistcnt_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistcnt_s32_z)))
svuint32_t svhistcnt_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistcnt_s64_z)))
svuint64_t svhistcnt_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistseg_u8)))
svuint8_t svhistseg_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistseg_s8)))
svuint8_t svhistseg_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s8_m)))
svint8_t svhsub_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s32_m)))
svint32_t svhsub_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s64_m)))
svint64_t svhsub_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s16_m)))
svint16_t svhsub_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s8_x)))
svint8_t svhsub_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s32_x)))
svint32_t svhsub_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s64_x)))
svint64_t svhsub_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s16_x)))
svint16_t svhsub_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s8_z)))
svint8_t svhsub_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s32_z)))
svint32_t svhsub_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s64_z)))
svint64_t svhsub_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s16_z)))
svint16_t svhsub_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u8_m)))
svuint8_t svhsub_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u32_m)))
svuint32_t svhsub_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u64_m)))
svuint64_t svhsub_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u16_m)))
svuint16_t svhsub_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u8_x)))
svuint8_t svhsub_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u32_x)))
svuint32_t svhsub_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u64_x)))
svuint64_t svhsub_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u16_x)))
svuint16_t svhsub_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u8_z)))
svuint8_t svhsub_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u32_z)))
svuint32_t svhsub_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u64_z)))
svuint64_t svhsub_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u16_z)))
svuint16_t svhsub_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s8_m)))
svint8_t svhsub_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s32_m)))
svint32_t svhsub_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s64_m)))
svint64_t svhsub_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s16_m)))
svint16_t svhsub_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s8_x)))
svint8_t svhsub_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s32_x)))
svint32_t svhsub_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s64_x)))
svint64_t svhsub_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s16_x)))
svint16_t svhsub_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s8_z)))
svint8_t svhsub_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s32_z)))
svint32_t svhsub_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s64_z)))
svint64_t svhsub_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s16_z)))
svint16_t svhsub_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u8_m)))
svuint8_t svhsub_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u32_m)))
svuint32_t svhsub_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u64_m)))
svuint64_t svhsub_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u16_m)))
svuint16_t svhsub_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u8_x)))
svuint8_t svhsub_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u32_x)))
svuint32_t svhsub_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u64_x)))
svuint64_t svhsub_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u16_x)))
svuint16_t svhsub_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u8_z)))
svuint8_t svhsub_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u32_z)))
svuint32_t svhsub_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u64_z)))
svuint64_t svhsub_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u16_z)))
svuint16_t svhsub_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s8_m)))
svint8_t svhsubr_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s32_m)))
svint32_t svhsubr_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s64_m)))
svint64_t svhsubr_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s16_m)))
svint16_t svhsubr_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s8_x)))
svint8_t svhsubr_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s32_x)))
svint32_t svhsubr_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s64_x)))
svint64_t svhsubr_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s16_x)))
svint16_t svhsubr_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s8_z)))
svint8_t svhsubr_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s32_z)))
svint32_t svhsubr_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s64_z)))
svint64_t svhsubr_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s16_z)))
svint16_t svhsubr_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u8_m)))
svuint8_t svhsubr_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u32_m)))
svuint32_t svhsubr_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u64_m)))
svuint64_t svhsubr_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u16_m)))
svuint16_t svhsubr_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u8_x)))
svuint8_t svhsubr_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u32_x)))
svuint32_t svhsubr_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u64_x)))
svuint64_t svhsubr_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u16_x)))
svuint16_t svhsubr_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u8_z)))
svuint8_t svhsubr_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u32_z)))
svuint32_t svhsubr_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u64_z)))
svuint64_t svhsubr_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u16_z)))
svuint16_t svhsubr_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s8_m)))
svint8_t svhsubr_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s32_m)))
svint32_t svhsubr_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s64_m)))
svint64_t svhsubr_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s16_m)))
svint16_t svhsubr_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s8_x)))
svint8_t svhsubr_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s32_x)))
svint32_t svhsubr_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s64_x)))
svint64_t svhsubr_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s16_x)))
svint16_t svhsubr_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s8_z)))
svint8_t svhsubr_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s32_z)))
svint32_t svhsubr_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s64_z)))
svint64_t svhsubr_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s16_z)))
svint16_t svhsubr_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u8_m)))
svuint8_t svhsubr_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u32_m)))
svuint32_t svhsubr_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u64_m)))
svuint64_t svhsubr_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u16_m)))
svuint16_t svhsubr_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u8_x)))
svuint8_t svhsubr_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u32_x)))
svuint32_t svhsubr_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u64_x)))
svuint64_t svhsubr_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u16_x)))
svuint16_t svhsubr_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u8_z)))
svuint8_t svhsubr_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u32_z)))
svuint32_t svhsubr_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u64_z)))
svuint64_t svhsubr_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u16_z)))
svuint16_t svhsubr_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_index_u32)))
svuint32_t svldnt1_gather_u32base_index_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_index_u64)))
svuint64_t svldnt1_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_index_f64)))
svfloat64_t svldnt1_gather_u64base_index_f64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_index_f32)))
svfloat32_t svldnt1_gather_u32base_index_f32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_index_s32)))
svint32_t svldnt1_gather_u32base_index_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_index_s64)))
svint64_t svldnt1_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_offset_u32)))
svuint32_t svldnt1_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_offset_u64)))
svuint64_t svldnt1_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_offset_f64)))
svfloat64_t svldnt1_gather_u64base_offset_f64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_offset_f32)))
svfloat32_t svldnt1_gather_u32base_offset_f32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_offset_s32)))
svint32_t svldnt1_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_offset_s64)))
svint64_t svldnt1_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_u32)))
svuint32_t svldnt1_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_u64)))
svuint64_t svldnt1_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_f64)))
svfloat64_t svldnt1_gather_u64base_f64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_f32)))
svfloat32_t svldnt1_gather_u32base_f32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_s32)))
svint32_t svldnt1_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_s64)))
svint64_t svldnt1_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64index_u64)))
svuint64_t svldnt1_gather_s64index_u64(svbool_t, uint64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64index_f64)))
svfloat64_t svldnt1_gather_s64index_f64(svbool_t, float64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64index_s64)))
svint64_t svldnt1_gather_s64index_s64(svbool_t, int64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64index_u64)))
svuint64_t svldnt1_gather_u64index_u64(svbool_t, uint64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64index_f64)))
svfloat64_t svldnt1_gather_u64index_f64(svbool_t, float64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64index_s64)))
svint64_t svldnt1_gather_u64index_s64(svbool_t, int64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32offset_u32)))
svuint32_t svldnt1_gather_u32offset_u32(svbool_t, uint32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32offset_f32)))
svfloat32_t svldnt1_gather_u32offset_f32(svbool_t, float32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32offset_s32)))
svint32_t svldnt1_gather_u32offset_s32(svbool_t, int32_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64offset_u64)))
svuint64_t svldnt1_gather_s64offset_u64(svbool_t, uint64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64offset_f64)))
svfloat64_t svldnt1_gather_s64offset_f64(svbool_t, float64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64offset_s64)))
svint64_t svldnt1_gather_s64offset_s64(svbool_t, int64_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64offset_u64)))
svuint64_t svldnt1_gather_u64offset_u64(svbool_t, uint64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64offset_f64)))
svfloat64_t svldnt1_gather_u64offset_f64(svbool_t, float64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64offset_s64)))
svint64_t svldnt1_gather_u64offset_s64(svbool_t, int64_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32base_offset_u32)))
svuint32_t svldnt1sb_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64base_offset_u64)))
svuint64_t svldnt1sb_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32base_offset_s32)))
svint32_t svldnt1sb_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64base_offset_s64)))
svint64_t svldnt1sb_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32base_u32)))
svuint32_t svldnt1sb_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64base_u64)))
svuint64_t svldnt1sb_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32base_s32)))
svint32_t svldnt1sb_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64base_s64)))
svint64_t svldnt1sb_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32offset_u32)))
svuint32_t svldnt1sb_gather_u32offset_u32(svbool_t, int8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32offset_s32)))
svint32_t svldnt1sb_gather_u32offset_s32(svbool_t, int8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_s64offset_u64)))
svuint64_t svldnt1sb_gather_s64offset_u64(svbool_t, int8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_s64offset_s64)))
svint64_t svldnt1sb_gather_s64offset_s64(svbool_t, int8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64offset_u64)))
svuint64_t svldnt1sb_gather_u64offset_u64(svbool_t, int8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64offset_s64)))
svint64_t svldnt1sb_gather_u64offset_s64(svbool_t, int8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_index_u32)))
svuint32_t svldnt1sh_gather_u32base_index_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_index_u64)))
svuint64_t svldnt1sh_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_index_s32)))
svint32_t svldnt1sh_gather_u32base_index_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_index_s64)))
svint64_t svldnt1sh_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_offset_u32)))
svuint32_t svldnt1sh_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_offset_u64)))
svuint64_t svldnt1sh_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_offset_s32)))
svint32_t svldnt1sh_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_offset_s64)))
svint64_t svldnt1sh_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_u32)))
svuint32_t svldnt1sh_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_u64)))
svuint64_t svldnt1sh_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_s32)))
svint32_t svldnt1sh_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_s64)))
svint64_t svldnt1sh_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_s64index_u64)))
svuint64_t svldnt1sh_gather_s64index_u64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_s64index_s64)))
svint64_t svldnt1sh_gather_s64index_s64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64index_u64)))
svuint64_t svldnt1sh_gather_u64index_u64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64index_s64)))
svint64_t svldnt1sh_gather_u64index_s64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32offset_u32)))
svuint32_t svldnt1sh_gather_u32offset_u32(svbool_t, int16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32offset_s32)))
svint32_t svldnt1sh_gather_u32offset_s32(svbool_t, int16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_s64offset_u64)))
svuint64_t svldnt1sh_gather_s64offset_u64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_s64offset_s64)))
svint64_t svldnt1sh_gather_s64offset_s64(svbool_t, int16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64offset_u64)))
svuint64_t svldnt1sh_gather_u64offset_u64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64offset_s64)))
svint64_t svldnt1sh_gather_u64offset_s64(svbool_t, int16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_index_u64)))
svuint64_t svldnt1sw_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_index_s64)))
svint64_t svldnt1sw_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_offset_u64)))
svuint64_t svldnt1sw_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_offset_s64)))
svint64_t svldnt1sw_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_u64)))
svuint64_t svldnt1sw_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_s64)))
svint64_t svldnt1sw_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_s64index_u64)))
svuint64_t svldnt1sw_gather_s64index_u64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_s64index_s64)))
svint64_t svldnt1sw_gather_s64index_s64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64index_u64)))
svuint64_t svldnt1sw_gather_u64index_u64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64index_s64)))
svint64_t svldnt1sw_gather_u64index_s64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_s64offset_u64)))
svuint64_t svldnt1sw_gather_s64offset_u64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_s64offset_s64)))
svint64_t svldnt1sw_gather_s64offset_s64(svbool_t, int32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64offset_u64)))
svuint64_t svldnt1sw_gather_u64offset_u64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64offset_s64)))
svint64_t svldnt1sw_gather_u64offset_s64(svbool_t, int32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32base_offset_u32)))
svuint32_t svldnt1ub_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64base_offset_u64)))
svuint64_t svldnt1ub_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32base_offset_s32)))
svint32_t svldnt1ub_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64base_offset_s64)))
svint64_t svldnt1ub_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32base_u32)))
svuint32_t svldnt1ub_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64base_u64)))
svuint64_t svldnt1ub_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32base_s32)))
svint32_t svldnt1ub_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64base_s64)))
svint64_t svldnt1ub_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32offset_u32)))
svuint32_t svldnt1ub_gather_u32offset_u32(svbool_t, uint8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32offset_s32)))
svint32_t svldnt1ub_gather_u32offset_s32(svbool_t, uint8_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_s64offset_u64)))
svuint64_t svldnt1ub_gather_s64offset_u64(svbool_t, uint8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_s64offset_s64)))
svint64_t svldnt1ub_gather_s64offset_s64(svbool_t, uint8_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64offset_u64)))
svuint64_t svldnt1ub_gather_u64offset_u64(svbool_t, uint8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64offset_s64)))
svint64_t svldnt1ub_gather_u64offset_s64(svbool_t, uint8_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_index_u32)))
svuint32_t svldnt1uh_gather_u32base_index_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_index_u64)))
svuint64_t svldnt1uh_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_index_s32)))
svint32_t svldnt1uh_gather_u32base_index_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_index_s64)))
svint64_t svldnt1uh_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_offset_u32)))
svuint32_t svldnt1uh_gather_u32base_offset_u32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_offset_u64)))
svuint64_t svldnt1uh_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_offset_s32)))
svint32_t svldnt1uh_gather_u32base_offset_s32(svbool_t, svuint32_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_offset_s64)))
svint64_t svldnt1uh_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_u32)))
svuint32_t svldnt1uh_gather_u32base_u32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_u64)))
svuint64_t svldnt1uh_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_s32)))
svint32_t svldnt1uh_gather_u32base_s32(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_s64)))
svint64_t svldnt1uh_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_s64index_u64)))
svuint64_t svldnt1uh_gather_s64index_u64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_s64index_s64)))
svint64_t svldnt1uh_gather_s64index_s64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64index_u64)))
svuint64_t svldnt1uh_gather_u64index_u64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64index_s64)))
svint64_t svldnt1uh_gather_u64index_s64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32offset_u32)))
svuint32_t svldnt1uh_gather_u32offset_u32(svbool_t, uint16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32offset_s32)))
svint32_t svldnt1uh_gather_u32offset_s32(svbool_t, uint16_t const *, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_s64offset_u64)))
svuint64_t svldnt1uh_gather_s64offset_u64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_s64offset_s64)))
svint64_t svldnt1uh_gather_s64offset_s64(svbool_t, uint16_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64offset_u64)))
svuint64_t svldnt1uh_gather_u64offset_u64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64offset_s64)))
svint64_t svldnt1uh_gather_u64offset_s64(svbool_t, uint16_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_index_u64)))
svuint64_t svldnt1uw_gather_u64base_index_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_index_s64)))
svint64_t svldnt1uw_gather_u64base_index_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_offset_u64)))
svuint64_t svldnt1uw_gather_u64base_offset_u64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_offset_s64)))
svint64_t svldnt1uw_gather_u64base_offset_s64(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_u64)))
svuint64_t svldnt1uw_gather_u64base_u64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_s64)))
svint64_t svldnt1uw_gather_u64base_s64(svbool_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_s64index_u64)))
svuint64_t svldnt1uw_gather_s64index_u64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_s64index_s64)))
svint64_t svldnt1uw_gather_s64index_s64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64index_u64)))
svuint64_t svldnt1uw_gather_u64index_u64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64index_s64)))
svint64_t svldnt1uw_gather_u64index_s64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_s64offset_u64)))
svuint64_t svldnt1uw_gather_s64offset_u64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_s64offset_s64)))
svint64_t svldnt1uw_gather_s64offset_s64(svbool_t, uint32_t const *, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64offset_u64)))
svuint64_t svldnt1uw_gather_u64offset_u64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64offset_s64)))
svint64_t svldnt1uw_gather_u64offset_s64(svbool_t, uint32_t const *, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f64_m)))
svint64_t svlogb_f64_m(svint64_t, svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f32_m)))
svint32_t svlogb_f32_m(svint32_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f16_m)))
svint16_t svlogb_f16_m(svint16_t, svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f64_x)))
svint64_t svlogb_f64_x(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f32_x)))
svint32_t svlogb_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f16_x)))
svint16_t svlogb_f16_x(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f64_z)))
svint64_t svlogb_f64_z(svbool_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f32_z)))
svint32_t svlogb_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f16_z)))
svint16_t svlogb_f16_z(svbool_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmatch_u8)))
svbool_t svmatch_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmatch_u16)))
svbool_t svmatch_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmatch_s8)))
svbool_t svmatch_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmatch_s16)))
svbool_t svmatch_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f64_m)))
svfloat64_t svmaxnmp_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f32_m)))
svfloat32_t svmaxnmp_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f16_m)))
svfloat16_t svmaxnmp_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f64_x)))
svfloat64_t svmaxnmp_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f32_x)))
svfloat32_t svmaxnmp_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f16_x)))
svfloat16_t svmaxnmp_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f64_m)))
svfloat64_t svmaxp_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f32_m)))
svfloat32_t svmaxp_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f16_m)))
svfloat16_t svmaxp_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f64_x)))
svfloat64_t svmaxp_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f32_x)))
svfloat32_t svmaxp_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f16_x)))
svfloat16_t svmaxp_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s8_m)))
svint8_t svmaxp_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s32_m)))
svint32_t svmaxp_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s64_m)))
svint64_t svmaxp_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s16_m)))
svint16_t svmaxp_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s8_x)))
svint8_t svmaxp_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s32_x)))
svint32_t svmaxp_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s64_x)))
svint64_t svmaxp_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s16_x)))
svint16_t svmaxp_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u8_m)))
svuint8_t svmaxp_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u32_m)))
svuint32_t svmaxp_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u64_m)))
svuint64_t svmaxp_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u16_m)))
svuint16_t svmaxp_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u8_x)))
svuint8_t svmaxp_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u32_x)))
svuint32_t svmaxp_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u64_x)))
svuint64_t svmaxp_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u16_x)))
svuint16_t svmaxp_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f64_m)))
svfloat64_t svminnmp_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f32_m)))
svfloat32_t svminnmp_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f16_m)))
svfloat16_t svminnmp_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f64_x)))
svfloat64_t svminnmp_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f32_x)))
svfloat32_t svminnmp_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f16_x)))
svfloat16_t svminnmp_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f64_m)))
svfloat64_t svminp_f64_m(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f32_m)))
svfloat32_t svminp_f32_m(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f16_m)))
svfloat16_t svminp_f16_m(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f64_x)))
svfloat64_t svminp_f64_x(svbool_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f32_x)))
svfloat32_t svminp_f32_x(svbool_t, svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f16_x)))
svfloat16_t svminp_f16_x(svbool_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s8_m)))
svint8_t svminp_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s32_m)))
svint32_t svminp_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s64_m)))
svint64_t svminp_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s16_m)))
svint16_t svminp_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s8_x)))
svint8_t svminp_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s32_x)))
svint32_t svminp_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s64_x)))
svint64_t svminp_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s16_x)))
svint16_t svminp_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u8_m)))
svuint8_t svminp_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u32_m)))
svuint32_t svminp_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u64_m)))
svuint64_t svminp_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u16_m)))
svuint16_t svminp_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u8_x)))
svuint8_t svminp_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u32_x)))
svuint32_t svminp_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u64_x)))
svuint64_t svminp_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u16_x)))
svuint16_t svminp_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_u32)))
svuint32_t svmla_lane_u32(svuint32_t, svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_u64)))
svuint64_t svmla_lane_u64(svuint64_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_u16)))
svuint16_t svmla_lane_u16(svuint16_t, svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_s32)))
svint32_t svmla_lane_s32(svint32_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_s64)))
svint64_t svmla_lane_s64(svint64_t, svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_s16)))
svint16_t svmla_lane_s16(svint16_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_f32)))
svfloat32_t svmlalb_n_f32(svfloat32_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_s32)))
svint32_t svmlalb_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_s64)))
svint64_t svmlalb_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_s16)))
svint16_t svmlalb_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_u32)))
svuint32_t svmlalb_n_u32(svuint32_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_u64)))
svuint64_t svmlalb_n_u64(svuint64_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_u16)))
svuint16_t svmlalb_n_u16(svuint16_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_f32)))
svfloat32_t svmlalb_f32(svfloat32_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_s32)))
svint32_t svmlalb_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_s64)))
svint64_t svmlalb_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_s16)))
svint16_t svmlalb_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_u32)))
svuint32_t svmlalb_u32(svuint32_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_u64)))
svuint64_t svmlalb_u64(svuint64_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_u16)))
svuint16_t svmlalb_u16(svuint16_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_lane_f32)))
svfloat32_t svmlalb_lane_f32(svfloat32_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_lane_s32)))
svint32_t svmlalb_lane_s32(svint32_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_lane_s64)))
svint64_t svmlalb_lane_s64(svint64_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_lane_u32)))
svuint32_t svmlalb_lane_u32(svuint32_t, svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_lane_u64)))
svuint64_t svmlalb_lane_u64(svuint64_t, svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_f32)))
svfloat32_t svmlalt_n_f32(svfloat32_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_s32)))
svint32_t svmlalt_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_s64)))
svint64_t svmlalt_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_s16)))
svint16_t svmlalt_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_u32)))
svuint32_t svmlalt_n_u32(svuint32_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_u64)))
svuint64_t svmlalt_n_u64(svuint64_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_u16)))
svuint16_t svmlalt_n_u16(svuint16_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_f32)))
svfloat32_t svmlalt_f32(svfloat32_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_s32)))
svint32_t svmlalt_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_s64)))
svint64_t svmlalt_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_s16)))
svint16_t svmlalt_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_u32)))
svuint32_t svmlalt_u32(svuint32_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_u64)))
svuint64_t svmlalt_u64(svuint64_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_u16)))
svuint16_t svmlalt_u16(svuint16_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_lane_f32)))
svfloat32_t svmlalt_lane_f32(svfloat32_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_lane_s32)))
svint32_t svmlalt_lane_s32(svint32_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_lane_s64)))
svint64_t svmlalt_lane_s64(svint64_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_lane_u32)))
svuint32_t svmlalt_lane_u32(svuint32_t, svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_lane_u64)))
svuint64_t svmlalt_lane_u64(svuint64_t, svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_u32)))
svuint32_t svmls_lane_u32(svuint32_t, svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_u64)))
svuint64_t svmls_lane_u64(svuint64_t, svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_u16)))
svuint16_t svmls_lane_u16(svuint16_t, svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_s32)))
svint32_t svmls_lane_s32(svint32_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_s64)))
svint64_t svmls_lane_s64(svint64_t, svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_s16)))
svint16_t svmls_lane_s16(svint16_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_f32)))
svfloat32_t svmlslb_n_f32(svfloat32_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_s32)))
svint32_t svmlslb_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_s64)))
svint64_t svmlslb_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_s16)))
svint16_t svmlslb_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_u32)))
svuint32_t svmlslb_n_u32(svuint32_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_u64)))
svuint64_t svmlslb_n_u64(svuint64_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_u16)))
svuint16_t svmlslb_n_u16(svuint16_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_f32)))
svfloat32_t svmlslb_f32(svfloat32_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_s32)))
svint32_t svmlslb_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_s64)))
svint64_t svmlslb_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_s16)))
svint16_t svmlslb_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_u32)))
svuint32_t svmlslb_u32(svuint32_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_u64)))
svuint64_t svmlslb_u64(svuint64_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_u16)))
svuint16_t svmlslb_u16(svuint16_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_lane_f32)))
svfloat32_t svmlslb_lane_f32(svfloat32_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_lane_s32)))
svint32_t svmlslb_lane_s32(svint32_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_lane_s64)))
svint64_t svmlslb_lane_s64(svint64_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_lane_u32)))
svuint32_t svmlslb_lane_u32(svuint32_t, svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_lane_u64)))
svuint64_t svmlslb_lane_u64(svuint64_t, svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_f32)))
svfloat32_t svmlslt_n_f32(svfloat32_t, svfloat16_t, float16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_s32)))
svint32_t svmlslt_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_s64)))
svint64_t svmlslt_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_s16)))
svint16_t svmlslt_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_u32)))
svuint32_t svmlslt_n_u32(svuint32_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_u64)))
svuint64_t svmlslt_n_u64(svuint64_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_u16)))
svuint16_t svmlslt_n_u16(svuint16_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_f32)))
svfloat32_t svmlslt_f32(svfloat32_t, svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_s32)))
svint32_t svmlslt_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_s64)))
svint64_t svmlslt_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_s16)))
svint16_t svmlslt_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_u32)))
svuint32_t svmlslt_u32(svuint32_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_u64)))
svuint64_t svmlslt_u64(svuint64_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_u16)))
svuint16_t svmlslt_u16(svuint16_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_lane_f32)))
svfloat32_t svmlslt_lane_f32(svfloat32_t, svfloat16_t, svfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_lane_s32)))
svint32_t svmlslt_lane_s32(svint32_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_lane_s64)))
svint64_t svmlslt_lane_s64(svint64_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_lane_u32)))
svuint32_t svmlslt_lane_u32(svuint32_t, svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_lane_u64)))
svuint64_t svmlslt_lane_u64(svuint64_t, svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_s32)))
svint32_t svmovlb_s32(svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_s64)))
svint64_t svmovlb_s64(svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_s16)))
svint16_t svmovlb_s16(svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_u32)))
svuint32_t svmovlb_u32(svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_u64)))
svuint64_t svmovlb_u64(svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_u16)))
svuint16_t svmovlb_u16(svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_s32)))
svint32_t svmovlt_s32(svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_s64)))
svint64_t svmovlt_s64(svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_s16)))
svint16_t svmovlt_s16(svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_u32)))
svuint32_t svmovlt_u32(svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_u64)))
svuint64_t svmovlt_u64(svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_u16)))
svuint16_t svmovlt_u16(svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_u32)))
svuint32_t svmul_lane_u32(svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_u64)))
svuint64_t svmul_lane_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_u16)))
svuint16_t svmul_lane_u16(svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_s32)))
svint32_t svmul_lane_s32(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_s64)))
svint64_t svmul_lane_s64(svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_s16)))
svint16_t svmul_lane_s16(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_s32)))
svint32_t svmullb_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_s64)))
svint64_t svmullb_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_s16)))
svint16_t svmullb_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_u32)))
svuint32_t svmullb_n_u32(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_u64)))
svuint64_t svmullb_n_u64(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_u16)))
svuint16_t svmullb_n_u16(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_s32)))
svint32_t svmullb_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_s64)))
svint64_t svmullb_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_s16)))
svint16_t svmullb_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_u32)))
svuint32_t svmullb_u32(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_u64)))
svuint64_t svmullb_u64(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_u16)))
svuint16_t svmullb_u16(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_lane_s32)))
svint32_t svmullb_lane_s32(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_lane_s64)))
svint64_t svmullb_lane_s64(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_lane_u32)))
svuint32_t svmullb_lane_u32(svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_lane_u64)))
svuint64_t svmullb_lane_u64(svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_s32)))
svint32_t svmullt_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_s64)))
svint64_t svmullt_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_s16)))
svint16_t svmullt_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_u32)))
svuint32_t svmullt_n_u32(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_u64)))
svuint64_t svmullt_n_u64(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_u16)))
svuint16_t svmullt_n_u16(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_s32)))
svint32_t svmullt_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_s64)))
svint64_t svmullt_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_s16)))
svint16_t svmullt_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_u32)))
svuint32_t svmullt_u32(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_u64)))
svuint64_t svmullt_u64(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_u16)))
svuint16_t svmullt_u16(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_lane_s32)))
svint32_t svmullt_lane_s32(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_lane_s64)))
svint64_t svmullt_lane_s64(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_lane_u32)))
svuint32_t svmullt_lane_u32(svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_lane_u64)))
svuint64_t svmullt_lane_u64(svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_u8)))
svuint8_t svnbsl_n_u8(svuint8_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_u32)))
svuint32_t svnbsl_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_u64)))
svuint64_t svnbsl_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_u16)))
svuint16_t svnbsl_n_u16(svuint16_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_s8)))
svint8_t svnbsl_n_s8(svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_s32)))
svint32_t svnbsl_n_s32(svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_s64)))
svint64_t svnbsl_n_s64(svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_s16)))
svint16_t svnbsl_n_s16(svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_u8)))
svuint8_t svnbsl_u8(svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_u32)))
svuint32_t svnbsl_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_u64)))
svuint64_t svnbsl_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_u16)))
svuint16_t svnbsl_u16(svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_s8)))
svint8_t svnbsl_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_s32)))
svint32_t svnbsl_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_s64)))
svint64_t svnbsl_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_s16)))
svint16_t svnbsl_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmatch_u8)))
svbool_t svnmatch_u8(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmatch_u16)))
svbool_t svnmatch_u16(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmatch_s8)))
svbool_t svnmatch_s8(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmatch_s16)))
svbool_t svnmatch_s16(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmul_n_u8)))
svuint8_t svpmul_n_u8(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmul_u8)))
svuint8_t svpmul_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_n_u64)))
svuint64_t svpmullb_n_u64(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_n_u16)))
svuint16_t svpmullb_n_u16(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_u64)))
svuint64_t svpmullb_u64(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_u16)))
svuint16_t svpmullb_u16(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_n_u8)))
svuint8_t svpmullb_pair_n_u8(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_n_u32)))
svuint32_t svpmullb_pair_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_u8)))
svuint8_t svpmullb_pair_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_u32)))
svuint32_t svpmullb_pair_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_n_u64)))
svuint64_t svpmullt_n_u64(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_n_u16)))
svuint16_t svpmullt_n_u16(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_u64)))
svuint64_t svpmullt_u64(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_u16)))
svuint16_t svpmullt_u16(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_n_u8)))
svuint8_t svpmullt_pair_n_u8(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_n_u32)))
svuint32_t svpmullt_pair_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_u8)))
svuint8_t svpmullt_pair_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_u32)))
svuint32_t svpmullt_pair_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s8_m)))
svint8_t svqabs_s8_m(svint8_t, svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s32_m)))
svint32_t svqabs_s32_m(svint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s64_m)))
svint64_t svqabs_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s16_m)))
svint16_t svqabs_s16_m(svint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s8_x)))
svint8_t svqabs_s8_x(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s32_x)))
svint32_t svqabs_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s64_x)))
svint64_t svqabs_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s16_x)))
svint16_t svqabs_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s8_z)))
svint8_t svqabs_s8_z(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s32_z)))
svint32_t svqabs_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s64_z)))
svint64_t svqabs_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s16_z)))
svint16_t svqabs_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s8_m)))
svint8_t svqadd_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s32_m)))
svint32_t svqadd_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s64_m)))
svint64_t svqadd_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s16_m)))
svint16_t svqadd_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s8_x)))
svint8_t svqadd_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s32_x)))
svint32_t svqadd_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s64_x)))
svint64_t svqadd_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s16_x)))
svint16_t svqadd_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s8_z)))
svint8_t svqadd_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s32_z)))
svint32_t svqadd_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s64_z)))
svint64_t svqadd_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s16_z)))
svint16_t svqadd_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u8_m)))
svuint8_t svqadd_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u32_m)))
svuint32_t svqadd_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u64_m)))
svuint64_t svqadd_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u16_m)))
svuint16_t svqadd_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u8_x)))
svuint8_t svqadd_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u32_x)))
svuint32_t svqadd_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u64_x)))
svuint64_t svqadd_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u16_x)))
svuint16_t svqadd_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u8_z)))
svuint8_t svqadd_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u32_z)))
svuint32_t svqadd_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u64_z)))
svuint64_t svqadd_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u16_z)))
svuint16_t svqadd_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s8_m)))
svint8_t svqadd_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s32_m)))
svint32_t svqadd_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s64_m)))
svint64_t svqadd_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s16_m)))
svint16_t svqadd_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s8_x)))
svint8_t svqadd_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s32_x)))
svint32_t svqadd_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s64_x)))
svint64_t svqadd_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s16_x)))
svint16_t svqadd_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s8_z)))
svint8_t svqadd_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s32_z)))
svint32_t svqadd_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s64_z)))
svint64_t svqadd_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s16_z)))
svint16_t svqadd_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u8_m)))
svuint8_t svqadd_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u32_m)))
svuint32_t svqadd_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u64_m)))
svuint64_t svqadd_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u16_m)))
svuint16_t svqadd_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u8_x)))
svuint8_t svqadd_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u32_x)))
svuint32_t svqadd_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u64_x)))
svuint64_t svqadd_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u16_x)))
svuint16_t svqadd_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u8_z)))
svuint8_t svqadd_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u32_z)))
svuint32_t svqadd_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u64_z)))
svuint64_t svqadd_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u16_z)))
svuint16_t svqadd_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqcadd_s8)))
svint8_t svqcadd_s8(svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqcadd_s32)))
svint32_t svqcadd_s32(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqcadd_s64)))
svint64_t svqcadd_s64(svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqcadd_s16)))
svint16_t svqcadd_s16(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_n_s32)))
svint32_t svqdmlalb_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_n_s64)))
svint64_t svqdmlalb_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_n_s16)))
svint16_t svqdmlalb_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_s32)))
svint32_t svqdmlalb_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_s64)))
svint64_t svqdmlalb_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_s16)))
svint16_t svqdmlalb_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_lane_s32)))
svint32_t svqdmlalb_lane_s32(svint32_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_lane_s64)))
svint64_t svqdmlalb_lane_s64(svint64_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_n_s32)))
svint32_t svqdmlalbt_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_n_s64)))
svint64_t svqdmlalbt_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_n_s16)))
svint16_t svqdmlalbt_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_s32)))
svint32_t svqdmlalbt_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_s64)))
svint64_t svqdmlalbt_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_s16)))
svint16_t svqdmlalbt_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_n_s32)))
svint32_t svqdmlalt_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_n_s64)))
svint64_t svqdmlalt_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_n_s16)))
svint16_t svqdmlalt_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_s32)))
svint32_t svqdmlalt_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_s64)))
svint64_t svqdmlalt_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_s16)))
svint16_t svqdmlalt_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_lane_s32)))
svint32_t svqdmlalt_lane_s32(svint32_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_lane_s64)))
svint64_t svqdmlalt_lane_s64(svint64_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_n_s32)))
svint32_t svqdmlslb_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_n_s64)))
svint64_t svqdmlslb_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_n_s16)))
svint16_t svqdmlslb_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_s32)))
svint32_t svqdmlslb_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_s64)))
svint64_t svqdmlslb_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_s16)))
svint16_t svqdmlslb_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_lane_s32)))
svint32_t svqdmlslb_lane_s32(svint32_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_lane_s64)))
svint64_t svqdmlslb_lane_s64(svint64_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_n_s32)))
svint32_t svqdmlslbt_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_n_s64)))
svint64_t svqdmlslbt_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_n_s16)))
svint16_t svqdmlslbt_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_s32)))
svint32_t svqdmlslbt_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_s64)))
svint64_t svqdmlslbt_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_s16)))
svint16_t svqdmlslbt_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_n_s32)))
svint32_t svqdmlslt_n_s32(svint32_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_n_s64)))
svint64_t svqdmlslt_n_s64(svint64_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_n_s16)))
svint16_t svqdmlslt_n_s16(svint16_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_s32)))
svint32_t svqdmlslt_s32(svint32_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_s64)))
svint64_t svqdmlslt_s64(svint64_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_s16)))
svint16_t svqdmlslt_s16(svint16_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_lane_s32)))
svint32_t svqdmlslt_lane_s32(svint32_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_lane_s64)))
svint64_t svqdmlslt_lane_s64(svint64_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_n_s8)))
svint8_t svqdmulh_n_s8(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_n_s32)))
svint32_t svqdmulh_n_s32(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_n_s64)))
svint64_t svqdmulh_n_s64(svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_n_s16)))
svint16_t svqdmulh_n_s16(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_s8)))
svint8_t svqdmulh_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_s32)))
svint32_t svqdmulh_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_s64)))
svint64_t svqdmulh_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_s16)))
svint16_t svqdmulh_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_lane_s32)))
svint32_t svqdmulh_lane_s32(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_lane_s64)))
svint64_t svqdmulh_lane_s64(svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_lane_s16)))
svint16_t svqdmulh_lane_s16(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_n_s32)))
svint32_t svqdmullb_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_n_s64)))
svint64_t svqdmullb_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_n_s16)))
svint16_t svqdmullb_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_s32)))
svint32_t svqdmullb_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_s64)))
svint64_t svqdmullb_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_s16)))
svint16_t svqdmullb_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_lane_s32)))
svint32_t svqdmullb_lane_s32(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_lane_s64)))
svint64_t svqdmullb_lane_s64(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_n_s32)))
svint32_t svqdmullt_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_n_s64)))
svint64_t svqdmullt_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_n_s16)))
svint16_t svqdmullt_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_s32)))
svint32_t svqdmullt_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_s64)))
svint64_t svqdmullt_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_s16)))
svint16_t svqdmullt_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_lane_s32)))
svint32_t svqdmullt_lane_s32(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_lane_s64)))
svint64_t svqdmullt_lane_s64(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s8_m)))
svint8_t svqneg_s8_m(svint8_t, svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s32_m)))
svint32_t svqneg_s32_m(svint32_t, svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s64_m)))
svint64_t svqneg_s64_m(svint64_t, svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s16_m)))
svint16_t svqneg_s16_m(svint16_t, svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s8_x)))
svint8_t svqneg_s8_x(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s32_x)))
svint32_t svqneg_s32_x(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s64_x)))
svint64_t svqneg_s64_x(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s16_x)))
svint16_t svqneg_s16_x(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s8_z)))
svint8_t svqneg_s8_z(svbool_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s32_z)))
svint32_t svqneg_s32_z(svbool_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s64_z)))
svint64_t svqneg_s64_z(svbool_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s16_z)))
svint16_t svqneg_s16_z(svbool_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_s8)))
svint8_t svqrdcmlah_s8(svint8_t, svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_s32)))
svint32_t svqrdcmlah_s32(svint32_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_s64)))
svint64_t svqrdcmlah_s64(svint64_t, svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_s16)))
svint16_t svqrdcmlah_s16(svint16_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_lane_s32)))
svint32_t svqrdcmlah_lane_s32(svint32_t, svint32_t, svint32_t, uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_lane_s16)))
svint16_t svqrdcmlah_lane_s16(svint16_t, svint16_t, svint16_t, uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_n_s8)))
svint8_t svqrdmlah_n_s8(svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_n_s32)))
svint32_t svqrdmlah_n_s32(svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_n_s64)))
svint64_t svqrdmlah_n_s64(svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_n_s16)))
svint16_t svqrdmlah_n_s16(svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_s8)))
svint8_t svqrdmlah_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_s32)))
svint32_t svqrdmlah_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_s64)))
svint64_t svqrdmlah_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_s16)))
svint16_t svqrdmlah_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_lane_s32)))
svint32_t svqrdmlah_lane_s32(svint32_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_lane_s64)))
svint64_t svqrdmlah_lane_s64(svint64_t, svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_lane_s16)))
svint16_t svqrdmlah_lane_s16(svint16_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_n_s8)))
svint8_t svqrdmlsh_n_s8(svint8_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_n_s32)))
svint32_t svqrdmlsh_n_s32(svint32_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_n_s64)))
svint64_t svqrdmlsh_n_s64(svint64_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_n_s16)))
svint16_t svqrdmlsh_n_s16(svint16_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_s8)))
svint8_t svqrdmlsh_s8(svint8_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_s32)))
svint32_t svqrdmlsh_s32(svint32_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_s64)))
svint64_t svqrdmlsh_s64(svint64_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_s16)))
svint16_t svqrdmlsh_s16(svint16_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_lane_s32)))
svint32_t svqrdmlsh_lane_s32(svint32_t, svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_lane_s64)))
svint64_t svqrdmlsh_lane_s64(svint64_t, svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_lane_s16)))
svint16_t svqrdmlsh_lane_s16(svint16_t, svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_n_s8)))
svint8_t svqrdmulh_n_s8(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_n_s32)))
svint32_t svqrdmulh_n_s32(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_n_s64)))
svint64_t svqrdmulh_n_s64(svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_n_s16)))
svint16_t svqrdmulh_n_s16(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_s8)))
svint8_t svqrdmulh_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_s32)))
svint32_t svqrdmulh_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_s64)))
svint64_t svqrdmulh_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_s16)))
svint16_t svqrdmulh_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_lane_s32)))
svint32_t svqrdmulh_lane_s32(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_lane_s64)))
svint64_t svqrdmulh_lane_s64(svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_lane_s16)))
svint16_t svqrdmulh_lane_s16(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s8_m)))
svint8_t svqrshl_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s32_m)))
svint32_t svqrshl_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s64_m)))
svint64_t svqrshl_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s16_m)))
svint16_t svqrshl_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s8_x)))
svint8_t svqrshl_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s32_x)))
svint32_t svqrshl_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s64_x)))
svint64_t svqrshl_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s16_x)))
svint16_t svqrshl_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s8_z)))
svint8_t svqrshl_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s32_z)))
svint32_t svqrshl_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s64_z)))
svint64_t svqrshl_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s16_z)))
svint16_t svqrshl_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u8_m)))
svuint8_t svqrshl_n_u8_m(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u32_m)))
svuint32_t svqrshl_n_u32_m(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u64_m)))
svuint64_t svqrshl_n_u64_m(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u16_m)))
svuint16_t svqrshl_n_u16_m(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u8_x)))
svuint8_t svqrshl_n_u8_x(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u32_x)))
svuint32_t svqrshl_n_u32_x(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u64_x)))
svuint64_t svqrshl_n_u64_x(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u16_x)))
svuint16_t svqrshl_n_u16_x(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u8_z)))
svuint8_t svqrshl_n_u8_z(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u32_z)))
svuint32_t svqrshl_n_u32_z(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u64_z)))
svuint64_t svqrshl_n_u64_z(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u16_z)))
svuint16_t svqrshl_n_u16_z(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s8_m)))
svint8_t svqrshl_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s32_m)))
svint32_t svqrshl_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s64_m)))
svint64_t svqrshl_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s16_m)))
svint16_t svqrshl_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s8_x)))
svint8_t svqrshl_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s32_x)))
svint32_t svqrshl_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s64_x)))
svint64_t svqrshl_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s16_x)))
svint16_t svqrshl_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s8_z)))
svint8_t svqrshl_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s32_z)))
svint32_t svqrshl_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s64_z)))
svint64_t svqrshl_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s16_z)))
svint16_t svqrshl_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u8_m)))
svuint8_t svqrshl_u8_m(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u32_m)))
svuint32_t svqrshl_u32_m(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u64_m)))
svuint64_t svqrshl_u64_m(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u16_m)))
svuint16_t svqrshl_u16_m(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u8_x)))
svuint8_t svqrshl_u8_x(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u32_x)))
svuint32_t svqrshl_u32_x(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u64_x)))
svuint64_t svqrshl_u64_x(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u16_x)))
svuint16_t svqrshl_u16_x(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u8_z)))
svuint8_t svqrshl_u8_z(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u32_z)))
svuint32_t svqrshl_u32_z(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u64_z)))
svuint64_t svqrshl_u64_z(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u16_z)))
svuint16_t svqrshl_u16_z(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_s32)))
svint16_t svqrshrnb_n_s32(svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_s64)))
svint32_t svqrshrnb_n_s64(svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_s16)))
svint8_t svqrshrnb_n_s16(svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_u32)))
svuint16_t svqrshrnb_n_u32(svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_u64)))
svuint32_t svqrshrnb_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_u16)))
svuint8_t svqrshrnb_n_u16(svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_s32)))
svint16_t svqrshrnt_n_s32(svint16_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_s64)))
svint32_t svqrshrnt_n_s64(svint32_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_s16)))
svint8_t svqrshrnt_n_s16(svint8_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_u32)))
svuint16_t svqrshrnt_n_u32(svuint16_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_u64)))
svuint32_t svqrshrnt_n_u64(svuint32_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_u16)))
svuint8_t svqrshrnt_n_u16(svuint8_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunb_n_s32)))
svuint16_t svqrshrunb_n_s32(svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunb_n_s64)))
svuint32_t svqrshrunb_n_s64(svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunb_n_s16)))
svuint8_t svqrshrunb_n_s16(svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunt_n_s32)))
svuint16_t svqrshrunt_n_s32(svuint16_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunt_n_s64)))
svuint32_t svqrshrunt_n_s64(svuint32_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunt_n_s16)))
svuint8_t svqrshrunt_n_s16(svuint8_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s8_m)))
svint8_t svqshl_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s32_m)))
svint32_t svqshl_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s64_m)))
svint64_t svqshl_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s16_m)))
svint16_t svqshl_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s8_x)))
svint8_t svqshl_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s32_x)))
svint32_t svqshl_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s64_x)))
svint64_t svqshl_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s16_x)))
svint16_t svqshl_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s8_z)))
svint8_t svqshl_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s32_z)))
svint32_t svqshl_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s64_z)))
svint64_t svqshl_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s16_z)))
svint16_t svqshl_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u8_m)))
svuint8_t svqshl_n_u8_m(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u32_m)))
svuint32_t svqshl_n_u32_m(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u64_m)))
svuint64_t svqshl_n_u64_m(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u16_m)))
svuint16_t svqshl_n_u16_m(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u8_x)))
svuint8_t svqshl_n_u8_x(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u32_x)))
svuint32_t svqshl_n_u32_x(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u64_x)))
svuint64_t svqshl_n_u64_x(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u16_x)))
svuint16_t svqshl_n_u16_x(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u8_z)))
svuint8_t svqshl_n_u8_z(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u32_z)))
svuint32_t svqshl_n_u32_z(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u64_z)))
svuint64_t svqshl_n_u64_z(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u16_z)))
svuint16_t svqshl_n_u16_z(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s8_m)))
svint8_t svqshl_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s32_m)))
svint32_t svqshl_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s64_m)))
svint64_t svqshl_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s16_m)))
svint16_t svqshl_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s8_x)))
svint8_t svqshl_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s32_x)))
svint32_t svqshl_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s64_x)))
svint64_t svqshl_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s16_x)))
svint16_t svqshl_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s8_z)))
svint8_t svqshl_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s32_z)))
svint32_t svqshl_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s64_z)))
svint64_t svqshl_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s16_z)))
svint16_t svqshl_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u8_m)))
svuint8_t svqshl_u8_m(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u32_m)))
svuint32_t svqshl_u32_m(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u64_m)))
svuint64_t svqshl_u64_m(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u16_m)))
svuint16_t svqshl_u16_m(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u8_x)))
svuint8_t svqshl_u8_x(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u32_x)))
svuint32_t svqshl_u32_x(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u64_x)))
svuint64_t svqshl_u64_x(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u16_x)))
svuint16_t svqshl_u16_x(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u8_z)))
svuint8_t svqshl_u8_z(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u32_z)))
svuint32_t svqshl_u32_z(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u64_z)))
svuint64_t svqshl_u64_z(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u16_z)))
svuint16_t svqshl_u16_z(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s8_m)))
svuint8_t svqshlu_n_s8_m(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s32_m)))
svuint32_t svqshlu_n_s32_m(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s64_m)))
svuint64_t svqshlu_n_s64_m(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s16_m)))
svuint16_t svqshlu_n_s16_m(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s8_x)))
svuint8_t svqshlu_n_s8_x(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s32_x)))
svuint32_t svqshlu_n_s32_x(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s64_x)))
svuint64_t svqshlu_n_s64_x(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s16_x)))
svuint16_t svqshlu_n_s16_x(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s8_z)))
svuint8_t svqshlu_n_s8_z(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s32_z)))
svuint32_t svqshlu_n_s32_z(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s64_z)))
svuint64_t svqshlu_n_s64_z(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s16_z)))
svuint16_t svqshlu_n_s16_z(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_s32)))
svint16_t svqshrnb_n_s32(svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_s64)))
svint32_t svqshrnb_n_s64(svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_s16)))
svint8_t svqshrnb_n_s16(svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_u32)))
svuint16_t svqshrnb_n_u32(svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_u64)))
svuint32_t svqshrnb_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_u16)))
svuint8_t svqshrnb_n_u16(svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_s32)))
svint16_t svqshrnt_n_s32(svint16_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_s64)))
svint32_t svqshrnt_n_s64(svint32_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_s16)))
svint8_t svqshrnt_n_s16(svint8_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_u32)))
svuint16_t svqshrnt_n_u32(svuint16_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_u64)))
svuint32_t svqshrnt_n_u64(svuint32_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_u16)))
svuint8_t svqshrnt_n_u16(svuint8_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunb_n_s32)))
svuint16_t svqshrunb_n_s32(svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunb_n_s64)))
svuint32_t svqshrunb_n_s64(svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunb_n_s16)))
svuint8_t svqshrunb_n_s16(svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunt_n_s32)))
svuint16_t svqshrunt_n_s32(svuint16_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunt_n_s64)))
svuint32_t svqshrunt_n_s64(svuint32_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunt_n_s16)))
svuint8_t svqshrunt_n_s16(svuint8_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s8_m)))
svint8_t svqsub_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s32_m)))
svint32_t svqsub_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s64_m)))
svint64_t svqsub_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s16_m)))
svint16_t svqsub_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s8_x)))
svint8_t svqsub_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s32_x)))
svint32_t svqsub_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s64_x)))
svint64_t svqsub_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s16_x)))
svint16_t svqsub_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s8_z)))
svint8_t svqsub_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s32_z)))
svint32_t svqsub_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s64_z)))
svint64_t svqsub_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s16_z)))
svint16_t svqsub_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u8_m)))
svuint8_t svqsub_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u32_m)))
svuint32_t svqsub_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u64_m)))
svuint64_t svqsub_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u16_m)))
svuint16_t svqsub_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u8_x)))
svuint8_t svqsub_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u32_x)))
svuint32_t svqsub_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u64_x)))
svuint64_t svqsub_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u16_x)))
svuint16_t svqsub_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u8_z)))
svuint8_t svqsub_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u32_z)))
svuint32_t svqsub_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u64_z)))
svuint64_t svqsub_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u16_z)))
svuint16_t svqsub_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s8_m)))
svint8_t svqsub_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s32_m)))
svint32_t svqsub_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s64_m)))
svint64_t svqsub_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s16_m)))
svint16_t svqsub_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s8_x)))
svint8_t svqsub_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s32_x)))
svint32_t svqsub_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s64_x)))
svint64_t svqsub_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s16_x)))
svint16_t svqsub_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s8_z)))
svint8_t svqsub_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s32_z)))
svint32_t svqsub_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s64_z)))
svint64_t svqsub_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s16_z)))
svint16_t svqsub_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u8_m)))
svuint8_t svqsub_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u32_m)))
svuint32_t svqsub_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u64_m)))
svuint64_t svqsub_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u16_m)))
svuint16_t svqsub_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u8_x)))
svuint8_t svqsub_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u32_x)))
svuint32_t svqsub_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u64_x)))
svuint64_t svqsub_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u16_x)))
svuint16_t svqsub_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u8_z)))
svuint8_t svqsub_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u32_z)))
svuint32_t svqsub_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u64_z)))
svuint64_t svqsub_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u16_z)))
svuint16_t svqsub_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s8_m)))
svint8_t svqsubr_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s32_m)))
svint32_t svqsubr_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s64_m)))
svint64_t svqsubr_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s16_m)))
svint16_t svqsubr_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s8_x)))
svint8_t svqsubr_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s32_x)))
svint32_t svqsubr_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s64_x)))
svint64_t svqsubr_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s16_x)))
svint16_t svqsubr_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s8_z)))
svint8_t svqsubr_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s32_z)))
svint32_t svqsubr_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s64_z)))
svint64_t svqsubr_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s16_z)))
svint16_t svqsubr_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u8_m)))
svuint8_t svqsubr_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u32_m)))
svuint32_t svqsubr_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u64_m)))
svuint64_t svqsubr_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u16_m)))
svuint16_t svqsubr_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u8_x)))
svuint8_t svqsubr_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u32_x)))
svuint32_t svqsubr_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u64_x)))
svuint64_t svqsubr_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u16_x)))
svuint16_t svqsubr_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u8_z)))
svuint8_t svqsubr_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u32_z)))
svuint32_t svqsubr_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u64_z)))
svuint64_t svqsubr_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u16_z)))
svuint16_t svqsubr_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s8_m)))
svint8_t svqsubr_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s32_m)))
svint32_t svqsubr_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s64_m)))
svint64_t svqsubr_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s16_m)))
svint16_t svqsubr_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s8_x)))
svint8_t svqsubr_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s32_x)))
svint32_t svqsubr_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s64_x)))
svint64_t svqsubr_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s16_x)))
svint16_t svqsubr_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s8_z)))
svint8_t svqsubr_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s32_z)))
svint32_t svqsubr_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s64_z)))
svint64_t svqsubr_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s16_z)))
svint16_t svqsubr_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u8_m)))
svuint8_t svqsubr_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u32_m)))
svuint32_t svqsubr_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u64_m)))
svuint64_t svqsubr_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u16_m)))
svuint16_t svqsubr_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u8_x)))
svuint8_t svqsubr_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u32_x)))
svuint32_t svqsubr_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u64_x)))
svuint64_t svqsubr_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u16_x)))
svuint16_t svqsubr_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u8_z)))
svuint8_t svqsubr_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u32_z)))
svuint32_t svqsubr_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u64_z)))
svuint64_t svqsubr_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u16_z)))
svuint16_t svqsubr_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_s32)))
svint16_t svqxtnb_s32(svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_s64)))
svint32_t svqxtnb_s64(svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_s16)))
svint8_t svqxtnb_s16(svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_u32)))
svuint16_t svqxtnb_u32(svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_u64)))
svuint32_t svqxtnb_u64(svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_u16)))
svuint8_t svqxtnb_u16(svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_s32)))
svint16_t svqxtnt_s32(svint16_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_s64)))
svint32_t svqxtnt_s64(svint32_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_s16)))
svint8_t svqxtnt_s16(svint8_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_u32)))
svuint16_t svqxtnt_u32(svuint16_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_u64)))
svuint32_t svqxtnt_u64(svuint32_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_u16)))
svuint8_t svqxtnt_u16(svuint8_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunb_s32)))
svuint16_t svqxtunb_s32(svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunb_s64)))
svuint32_t svqxtunb_s64(svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunb_s16)))
svuint8_t svqxtunb_s16(svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunt_s32)))
svuint16_t svqxtunt_s32(svuint16_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunt_s64)))
svuint32_t svqxtunt_s64(svuint32_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunt_s16)))
svuint8_t svqxtunt_s16(svuint8_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_u32)))
svuint16_t svraddhnb_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_u64)))
svuint32_t svraddhnb_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_u16)))
svuint8_t svraddhnb_n_u16(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_s32)))
svint16_t svraddhnb_n_s32(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_s64)))
svint32_t svraddhnb_n_s64(svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_s16)))
svint8_t svraddhnb_n_s16(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_u32)))
svuint16_t svraddhnb_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_u64)))
svuint32_t svraddhnb_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_u16)))
svuint8_t svraddhnb_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_s32)))
svint16_t svraddhnb_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_s64)))
svint32_t svraddhnb_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_s16)))
svint8_t svraddhnb_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_u32)))
svuint16_t svraddhnt_n_u32(svuint16_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_u64)))
svuint32_t svraddhnt_n_u64(svuint32_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_u16)))
svuint8_t svraddhnt_n_u16(svuint8_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_s32)))
svint16_t svraddhnt_n_s32(svint16_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_s64)))
svint32_t svraddhnt_n_s64(svint32_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_s16)))
svint8_t svraddhnt_n_s16(svint8_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_u32)))
svuint16_t svraddhnt_u32(svuint16_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_u64)))
svuint32_t svraddhnt_u64(svuint32_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_u16)))
svuint8_t svraddhnt_u16(svuint8_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_s32)))
svint16_t svraddhnt_s32(svint16_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_s64)))
svint32_t svraddhnt_s64(svint32_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_s16)))
svint8_t svraddhnt_s16(svint8_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_u32_m)))
svuint32_t svrecpe_u32_m(svuint32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_u32_x)))
svuint32_t svrecpe_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_u32_z)))
svuint32_t svrecpe_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s8_m)))
svint8_t svrhadd_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s32_m)))
svint32_t svrhadd_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s64_m)))
svint64_t svrhadd_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s16_m)))
svint16_t svrhadd_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s8_x)))
svint8_t svrhadd_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s32_x)))
svint32_t svrhadd_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s64_x)))
svint64_t svrhadd_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s16_x)))
svint16_t svrhadd_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s8_z)))
svint8_t svrhadd_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s32_z)))
svint32_t svrhadd_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s64_z)))
svint64_t svrhadd_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s16_z)))
svint16_t svrhadd_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u8_m)))
svuint8_t svrhadd_n_u8_m(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u32_m)))
svuint32_t svrhadd_n_u32_m(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u64_m)))
svuint64_t svrhadd_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u16_m)))
svuint16_t svrhadd_n_u16_m(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u8_x)))
svuint8_t svrhadd_n_u8_x(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u32_x)))
svuint32_t svrhadd_n_u32_x(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u64_x)))
svuint64_t svrhadd_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u16_x)))
svuint16_t svrhadd_n_u16_x(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u8_z)))
svuint8_t svrhadd_n_u8_z(svbool_t, svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u32_z)))
svuint32_t svrhadd_n_u32_z(svbool_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u64_z)))
svuint64_t svrhadd_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u16_z)))
svuint16_t svrhadd_n_u16_z(svbool_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s8_m)))
svint8_t svrhadd_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s32_m)))
svint32_t svrhadd_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s64_m)))
svint64_t svrhadd_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s16_m)))
svint16_t svrhadd_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s8_x)))
svint8_t svrhadd_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s32_x)))
svint32_t svrhadd_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s64_x)))
svint64_t svrhadd_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s16_x)))
svint16_t svrhadd_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s8_z)))
svint8_t svrhadd_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s32_z)))
svint32_t svrhadd_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s64_z)))
svint64_t svrhadd_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s16_z)))
svint16_t svrhadd_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u8_m)))
svuint8_t svrhadd_u8_m(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u32_m)))
svuint32_t svrhadd_u32_m(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u64_m)))
svuint64_t svrhadd_u64_m(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u16_m)))
svuint16_t svrhadd_u16_m(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u8_x)))
svuint8_t svrhadd_u8_x(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u32_x)))
svuint32_t svrhadd_u32_x(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u64_x)))
svuint64_t svrhadd_u64_x(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u16_x)))
svuint16_t svrhadd_u16_x(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u8_z)))
svuint8_t svrhadd_u8_z(svbool_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u32_z)))
svuint32_t svrhadd_u32_z(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u64_z)))
svuint64_t svrhadd_u64_z(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u16_z)))
svuint16_t svrhadd_u16_z(svbool_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s8_m)))
svint8_t svrshl_n_s8_m(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s32_m)))
svint32_t svrshl_n_s32_m(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s64_m)))
svint64_t svrshl_n_s64_m(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s16_m)))
svint16_t svrshl_n_s16_m(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s8_x)))
svint8_t svrshl_n_s8_x(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s32_x)))
svint32_t svrshl_n_s32_x(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s64_x)))
svint64_t svrshl_n_s64_x(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s16_x)))
svint16_t svrshl_n_s16_x(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s8_z)))
svint8_t svrshl_n_s8_z(svbool_t, svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s32_z)))
svint32_t svrshl_n_s32_z(svbool_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s64_z)))
svint64_t svrshl_n_s64_z(svbool_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s16_z)))
svint16_t svrshl_n_s16_z(svbool_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u8_m)))
svuint8_t svrshl_n_u8_m(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u32_m)))
svuint32_t svrshl_n_u32_m(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u64_m)))
svuint64_t svrshl_n_u64_m(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u16_m)))
svuint16_t svrshl_n_u16_m(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u8_x)))
svuint8_t svrshl_n_u8_x(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u32_x)))
svuint32_t svrshl_n_u32_x(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u64_x)))
svuint64_t svrshl_n_u64_x(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u16_x)))
svuint16_t svrshl_n_u16_x(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u8_z)))
svuint8_t svrshl_n_u8_z(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u32_z)))
svuint32_t svrshl_n_u32_z(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u64_z)))
svuint64_t svrshl_n_u64_z(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u16_z)))
svuint16_t svrshl_n_u16_z(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s8_m)))
svint8_t svrshl_s8_m(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s32_m)))
svint32_t svrshl_s32_m(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s64_m)))
svint64_t svrshl_s64_m(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s16_m)))
svint16_t svrshl_s16_m(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s8_x)))
svint8_t svrshl_s8_x(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s32_x)))
svint32_t svrshl_s32_x(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s64_x)))
svint64_t svrshl_s64_x(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s16_x)))
svint16_t svrshl_s16_x(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s8_z)))
svint8_t svrshl_s8_z(svbool_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s32_z)))
svint32_t svrshl_s32_z(svbool_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s64_z)))
svint64_t svrshl_s64_z(svbool_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s16_z)))
svint16_t svrshl_s16_z(svbool_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u8_m)))
svuint8_t svrshl_u8_m(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u32_m)))
svuint32_t svrshl_u32_m(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u64_m)))
svuint64_t svrshl_u64_m(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u16_m)))
svuint16_t svrshl_u16_m(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u8_x)))
svuint8_t svrshl_u8_x(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u32_x)))
svuint32_t svrshl_u32_x(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u64_x)))
svuint64_t svrshl_u64_x(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u16_x)))
svuint16_t svrshl_u16_x(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u8_z)))
svuint8_t svrshl_u8_z(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u32_z)))
svuint32_t svrshl_u32_z(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u64_z)))
svuint64_t svrshl_u64_z(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u16_z)))
svuint16_t svrshl_u16_z(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s8_m)))
svint8_t svrshr_n_s8_m(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s32_m)))
svint32_t svrshr_n_s32_m(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s64_m)))
svint64_t svrshr_n_s64_m(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s16_m)))
svint16_t svrshr_n_s16_m(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u8_m)))
svuint8_t svrshr_n_u8_m(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u32_m)))
svuint32_t svrshr_n_u32_m(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u64_m)))
svuint64_t svrshr_n_u64_m(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u16_m)))
svuint16_t svrshr_n_u16_m(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s8_x)))
svint8_t svrshr_n_s8_x(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s32_x)))
svint32_t svrshr_n_s32_x(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s64_x)))
svint64_t svrshr_n_s64_x(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s16_x)))
svint16_t svrshr_n_s16_x(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u8_x)))
svuint8_t svrshr_n_u8_x(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u32_x)))
svuint32_t svrshr_n_u32_x(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u64_x)))
svuint64_t svrshr_n_u64_x(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u16_x)))
svuint16_t svrshr_n_u16_x(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s8_z)))
svint8_t svrshr_n_s8_z(svbool_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s32_z)))
svint32_t svrshr_n_s32_z(svbool_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s64_z)))
svint64_t svrshr_n_s64_z(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s16_z)))
svint16_t svrshr_n_s16_z(svbool_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u8_z)))
svuint8_t svrshr_n_u8_z(svbool_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u32_z)))
svuint32_t svrshr_n_u32_z(svbool_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u64_z)))
svuint64_t svrshr_n_u64_z(svbool_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u16_z)))
svuint16_t svrshr_n_u16_z(svbool_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_u32)))
svuint16_t svrshrnb_n_u32(svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_u64)))
svuint32_t svrshrnb_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_u16)))
svuint8_t svrshrnb_n_u16(svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_s32)))
svint16_t svrshrnb_n_s32(svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_s64)))
svint32_t svrshrnb_n_s64(svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_s16)))
svint8_t svrshrnb_n_s16(svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_u32)))
svuint16_t svrshrnt_n_u32(svuint16_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_u64)))
svuint32_t svrshrnt_n_u64(svuint32_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_u16)))
svuint8_t svrshrnt_n_u16(svuint8_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_s32)))
svint16_t svrshrnt_n_s32(svint16_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_s64)))
svint32_t svrshrnt_n_s64(svint32_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_s16)))
svint8_t svrshrnt_n_s16(svint8_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_u32_m)))
svuint32_t svrsqrte_u32_m(svuint32_t, svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_u32_x)))
svuint32_t svrsqrte_u32_x(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_u32_z)))
svuint32_t svrsqrte_u32_z(svbool_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_s8)))
svint8_t svrsra_n_s8(svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_s32)))
svint32_t svrsra_n_s32(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_s64)))
svint64_t svrsra_n_s64(svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_s16)))
svint16_t svrsra_n_s16(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_u8)))
svuint8_t svrsra_n_u8(svuint8_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_u32)))
svuint32_t svrsra_n_u32(svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_u64)))
svuint64_t svrsra_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_u16)))
svuint16_t svrsra_n_u16(svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_u32)))
svuint16_t svrsubhnb_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_u64)))
svuint32_t svrsubhnb_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_u16)))
svuint8_t svrsubhnb_n_u16(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_s32)))
svint16_t svrsubhnb_n_s32(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_s64)))
svint32_t svrsubhnb_n_s64(svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_s16)))
svint8_t svrsubhnb_n_s16(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_u32)))
svuint16_t svrsubhnb_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_u64)))
svuint32_t svrsubhnb_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_u16)))
svuint8_t svrsubhnb_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_s32)))
svint16_t svrsubhnb_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_s64)))
svint32_t svrsubhnb_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_s16)))
svint8_t svrsubhnb_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_u32)))
svuint16_t svrsubhnt_n_u32(svuint16_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_u64)))
svuint32_t svrsubhnt_n_u64(svuint32_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_u16)))
svuint8_t svrsubhnt_n_u16(svuint8_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_s32)))
svint16_t svrsubhnt_n_s32(svint16_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_s64)))
svint32_t svrsubhnt_n_s64(svint32_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_s16)))
svint8_t svrsubhnt_n_s16(svint8_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_u32)))
svuint16_t svrsubhnt_u32(svuint16_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_u64)))
svuint32_t svrsubhnt_u64(svuint32_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_u16)))
svuint8_t svrsubhnt_u16(svuint8_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_s32)))
svint16_t svrsubhnt_s32(svint16_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_s64)))
svint32_t svrsubhnt_s64(svint32_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_s16)))
svint8_t svrsubhnt_s16(svint8_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclb_n_u32)))
svuint32_t svsbclb_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclb_n_u64)))
svuint64_t svsbclb_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclb_u32)))
svuint32_t svsbclb_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclb_u64)))
svuint64_t svsbclb_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclt_n_u32)))
svuint32_t svsbclt_n_u32(svuint32_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclt_n_u64)))
svuint64_t svsbclt_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclt_u32)))
svuint32_t svsbclt_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclt_u64)))
svuint64_t svsbclt_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_s32)))
svint32_t svshllb_n_s32(svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_s64)))
svint64_t svshllb_n_s64(svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_s16)))
svint16_t svshllb_n_s16(svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_u32)))
svuint32_t svshllb_n_u32(svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_u64)))
svuint64_t svshllb_n_u64(svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_u16)))
svuint16_t svshllb_n_u16(svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_s32)))
svint32_t svshllt_n_s32(svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_s64)))
svint64_t svshllt_n_s64(svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_s16)))
svint16_t svshllt_n_s16(svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_u32)))
svuint32_t svshllt_n_u32(svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_u64)))
svuint64_t svshllt_n_u64(svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_u16)))
svuint16_t svshllt_n_u16(svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_u32)))
svuint16_t svshrnb_n_u32(svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_u64)))
svuint32_t svshrnb_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_u16)))
svuint8_t svshrnb_n_u16(svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_s32)))
svint16_t svshrnb_n_s32(svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_s64)))
svint32_t svshrnb_n_s64(svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_s16)))
svint8_t svshrnb_n_s16(svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_u32)))
svuint16_t svshrnt_n_u32(svuint16_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_u64)))
svuint32_t svshrnt_n_u64(svuint32_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_u16)))
svuint8_t svshrnt_n_u16(svuint8_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_s32)))
svint16_t svshrnt_n_s32(svint16_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_s64)))
svint32_t svshrnt_n_s64(svint32_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_s16)))
svint8_t svshrnt_n_s16(svint8_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_u8)))
svuint8_t svsli_n_u8(svuint8_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_u32)))
svuint32_t svsli_n_u32(svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_u64)))
svuint64_t svsli_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_u16)))
svuint16_t svsli_n_u16(svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_s8)))
svint8_t svsli_n_s8(svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_s32)))
svint32_t svsli_n_s32(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_s64)))
svint64_t svsli_n_s64(svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_s16)))
svint16_t svsli_n_s16(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u8_m)))
svuint8_t svsqadd_n_u8_m(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u32_m)))
svuint32_t svsqadd_n_u32_m(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u64_m)))
svuint64_t svsqadd_n_u64_m(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u16_m)))
svuint16_t svsqadd_n_u16_m(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u8_x)))
svuint8_t svsqadd_n_u8_x(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u32_x)))
svuint32_t svsqadd_n_u32_x(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u64_x)))
svuint64_t svsqadd_n_u64_x(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u16_x)))
svuint16_t svsqadd_n_u16_x(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u8_z)))
svuint8_t svsqadd_n_u8_z(svbool_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u32_z)))
svuint32_t svsqadd_n_u32_z(svbool_t, svuint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u64_z)))
svuint64_t svsqadd_n_u64_z(svbool_t, svuint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u16_z)))
svuint16_t svsqadd_n_u16_z(svbool_t, svuint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u8_m)))
svuint8_t svsqadd_u8_m(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u32_m)))
svuint32_t svsqadd_u32_m(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u64_m)))
svuint64_t svsqadd_u64_m(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u16_m)))
svuint16_t svsqadd_u16_m(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u8_x)))
svuint8_t svsqadd_u8_x(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u32_x)))
svuint32_t svsqadd_u32_x(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u64_x)))
svuint64_t svsqadd_u64_x(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u16_x)))
svuint16_t svsqadd_u16_x(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u8_z)))
svuint8_t svsqadd_u8_z(svbool_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u32_z)))
svuint32_t svsqadd_u32_z(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u64_z)))
svuint64_t svsqadd_u64_z(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u16_z)))
svuint16_t svsqadd_u16_z(svbool_t, svuint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_s8)))
svint8_t svsra_n_s8(svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_s32)))
svint32_t svsra_n_s32(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_s64)))
svint64_t svsra_n_s64(svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_s16)))
svint16_t svsra_n_s16(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_u8)))
svuint8_t svsra_n_u8(svuint8_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_u32)))
svuint32_t svsra_n_u32(svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_u64)))
svuint64_t svsra_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_u16)))
svuint16_t svsra_n_u16(svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_u8)))
svuint8_t svsri_n_u8(svuint8_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_u32)))
svuint32_t svsri_n_u32(svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_u64)))
svuint64_t svsri_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_u16)))
svuint16_t svsri_n_u16(svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_s8)))
svint8_t svsri_n_s8(svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_s32)))
svint32_t svsri_n_s32(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_s64)))
svint64_t svsri_n_s64(svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_s16)))
svint16_t svsri_n_s16(svint16_t, svint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_index_u32)))
void svstnt1_scatter_u32base_index_u32(svbool_t, svuint32_t, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_index_u64)))
void svstnt1_scatter_u64base_index_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_index_f64)))
void svstnt1_scatter_u64base_index_f64(svbool_t, svuint64_t, int64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_index_f32)))
void svstnt1_scatter_u32base_index_f32(svbool_t, svuint32_t, int64_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_index_s32)))
void svstnt1_scatter_u32base_index_s32(svbool_t, svuint32_t, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_index_s64)))
void svstnt1_scatter_u64base_index_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_offset_u32)))
void svstnt1_scatter_u32base_offset_u32(svbool_t, svuint32_t, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_offset_u64)))
void svstnt1_scatter_u64base_offset_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_offset_f64)))
void svstnt1_scatter_u64base_offset_f64(svbool_t, svuint64_t, int64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_offset_f32)))
void svstnt1_scatter_u32base_offset_f32(svbool_t, svuint32_t, int64_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_offset_s32)))
void svstnt1_scatter_u32base_offset_s32(svbool_t, svuint32_t, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_offset_s64)))
void svstnt1_scatter_u64base_offset_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_u32)))
void svstnt1_scatter_u32base_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_u64)))
void svstnt1_scatter_u64base_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_f64)))
void svstnt1_scatter_u64base_f64(svbool_t, svuint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_f32)))
void svstnt1_scatter_u32base_f32(svbool_t, svuint32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_s32)))
void svstnt1_scatter_u32base_s32(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_s64)))
void svstnt1_scatter_u64base_s64(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64index_u64)))
void svstnt1_scatter_s64index_u64(svbool_t, uint64_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64index_f64)))
void svstnt1_scatter_s64index_f64(svbool_t, float64_t *, svint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64index_s64)))
void svstnt1_scatter_s64index_s64(svbool_t, int64_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64index_u64)))
void svstnt1_scatter_u64index_u64(svbool_t, uint64_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64index_f64)))
void svstnt1_scatter_u64index_f64(svbool_t, float64_t *, svuint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64index_s64)))
void svstnt1_scatter_u64index_s64(svbool_t, int64_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32offset_u32)))
void svstnt1_scatter_u32offset_u32(svbool_t, uint32_t *, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32offset_f32)))
void svstnt1_scatter_u32offset_f32(svbool_t, float32_t *, svuint32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32offset_s32)))
void svstnt1_scatter_u32offset_s32(svbool_t, int32_t *, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64offset_u64)))
void svstnt1_scatter_s64offset_u64(svbool_t, uint64_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64offset_f64)))
void svstnt1_scatter_s64offset_f64(svbool_t, float64_t *, svint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64offset_s64)))
void svstnt1_scatter_s64offset_s64(svbool_t, int64_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64offset_u64)))
void svstnt1_scatter_u64offset_u64(svbool_t, uint64_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64offset_f64)))
void svstnt1_scatter_u64offset_f64(svbool_t, float64_t *, svuint64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64offset_s64)))
void svstnt1_scatter_u64offset_s64(svbool_t, int64_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32base_offset_u32)))
void svstnt1b_scatter_u32base_offset_u32(svbool_t, svuint32_t, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64base_offset_u64)))
void svstnt1b_scatter_u64base_offset_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32base_offset_s32)))
void svstnt1b_scatter_u32base_offset_s32(svbool_t, svuint32_t, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64base_offset_s64)))
void svstnt1b_scatter_u64base_offset_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32base_u32)))
void svstnt1b_scatter_u32base_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64base_u64)))
void svstnt1b_scatter_u64base_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32base_s32)))
void svstnt1b_scatter_u32base_s32(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64base_s64)))
void svstnt1b_scatter_u64base_s64(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32offset_s32)))
void svstnt1b_scatter_u32offset_s32(svbool_t, int8_t *, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32offset_u32)))
void svstnt1b_scatter_u32offset_u32(svbool_t, uint8_t *, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_s64offset_s64)))
void svstnt1b_scatter_s64offset_s64(svbool_t, int8_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_s64offset_u64)))
void svstnt1b_scatter_s64offset_u64(svbool_t, uint8_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64offset_s64)))
void svstnt1b_scatter_u64offset_s64(svbool_t, int8_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64offset_u64)))
void svstnt1b_scatter_u64offset_u64(svbool_t, uint8_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_index_u32)))
void svstnt1h_scatter_u32base_index_u32(svbool_t, svuint32_t, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_index_u64)))
void svstnt1h_scatter_u64base_index_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_index_s32)))
void svstnt1h_scatter_u32base_index_s32(svbool_t, svuint32_t, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_index_s64)))
void svstnt1h_scatter_u64base_index_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_offset_u32)))
void svstnt1h_scatter_u32base_offset_u32(svbool_t, svuint32_t, int64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_offset_u64)))
void svstnt1h_scatter_u64base_offset_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_offset_s32)))
void svstnt1h_scatter_u32base_offset_s32(svbool_t, svuint32_t, int64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_offset_s64)))
void svstnt1h_scatter_u64base_offset_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_u32)))
void svstnt1h_scatter_u32base_u32(svbool_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_u64)))
void svstnt1h_scatter_u64base_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_s32)))
void svstnt1h_scatter_u32base_s32(svbool_t, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_s64)))
void svstnt1h_scatter_u64base_s64(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_s64index_s64)))
void svstnt1h_scatter_s64index_s64(svbool_t, int16_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_s64index_u64)))
void svstnt1h_scatter_s64index_u64(svbool_t, uint16_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64index_s64)))
void svstnt1h_scatter_u64index_s64(svbool_t, int16_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64index_u64)))
void svstnt1h_scatter_u64index_u64(svbool_t, uint16_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32offset_s32)))
void svstnt1h_scatter_u32offset_s32(svbool_t, int16_t *, svuint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32offset_u32)))
void svstnt1h_scatter_u32offset_u32(svbool_t, uint16_t *, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_s64offset_s64)))
void svstnt1h_scatter_s64offset_s64(svbool_t, int16_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_s64offset_u64)))
void svstnt1h_scatter_s64offset_u64(svbool_t, uint16_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64offset_s64)))
void svstnt1h_scatter_u64offset_s64(svbool_t, int16_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64offset_u64)))
void svstnt1h_scatter_u64offset_u64(svbool_t, uint16_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_index_u64)))
void svstnt1w_scatter_u64base_index_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_index_s64)))
void svstnt1w_scatter_u64base_index_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_offset_u64)))
void svstnt1w_scatter_u64base_offset_u64(svbool_t, svuint64_t, int64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_offset_s64)))
void svstnt1w_scatter_u64base_offset_s64(svbool_t, svuint64_t, int64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_u64)))
void svstnt1w_scatter_u64base_u64(svbool_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_s64)))
void svstnt1w_scatter_u64base_s64(svbool_t, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_s64index_s64)))
void svstnt1w_scatter_s64index_s64(svbool_t, int32_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_s64index_u64)))
void svstnt1w_scatter_s64index_u64(svbool_t, uint32_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64index_s64)))
void svstnt1w_scatter_u64index_s64(svbool_t, int32_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64index_u64)))
void svstnt1w_scatter_u64index_u64(svbool_t, uint32_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_s64offset_s64)))
void svstnt1w_scatter_s64offset_s64(svbool_t, int32_t *, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_s64offset_u64)))
void svstnt1w_scatter_s64offset_u64(svbool_t, uint32_t *, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64offset_s64)))
void svstnt1w_scatter_u64offset_s64(svbool_t, int32_t *, svuint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64offset_u64)))
void svstnt1w_scatter_u64offset_u64(svbool_t, uint32_t *, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_u32)))
svuint16_t svsubhnb_n_u32(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_u64)))
svuint32_t svsubhnb_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_u16)))
svuint8_t svsubhnb_n_u16(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_s32)))
svint16_t svsubhnb_n_s32(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_s64)))
svint32_t svsubhnb_n_s64(svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_s16)))
svint8_t svsubhnb_n_s16(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_u32)))
svuint16_t svsubhnb_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_u64)))
svuint32_t svsubhnb_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_u16)))
svuint8_t svsubhnb_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_s32)))
svint16_t svsubhnb_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_s64)))
svint32_t svsubhnb_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_s16)))
svint8_t svsubhnb_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_u32)))
svuint16_t svsubhnt_n_u32(svuint16_t, svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_u64)))
svuint32_t svsubhnt_n_u64(svuint32_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_u16)))
svuint8_t svsubhnt_n_u16(svuint8_t, svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_s32)))
svint16_t svsubhnt_n_s32(svint16_t, svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_s64)))
svint32_t svsubhnt_n_s64(svint32_t, svint64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_s16)))
svint8_t svsubhnt_n_s16(svint8_t, svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_u32)))
svuint16_t svsubhnt_u32(svuint16_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_u64)))
svuint32_t svsubhnt_u64(svuint32_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_u16)))
svuint8_t svsubhnt_u16(svuint8_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_s32)))
svint16_t svsubhnt_s32(svint16_t, svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_s64)))
svint32_t svsubhnt_s64(svint32_t, svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_s16)))
svint8_t svsubhnt_s16(svint8_t, svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_s32)))
svint32_t svsublb_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_s64)))
svint64_t svsublb_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_s16)))
svint16_t svsublb_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_u32)))
svuint32_t svsublb_n_u32(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_u64)))
svuint64_t svsublb_n_u64(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_u16)))
svuint16_t svsublb_n_u16(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_s32)))
svint32_t svsublb_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_s64)))
svint64_t svsublb_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_s16)))
svint16_t svsublb_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_u32)))
svuint32_t svsublb_u32(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_u64)))
svuint64_t svsublb_u64(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_u16)))
svuint16_t svsublb_u16(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_n_s32)))
svint32_t svsublbt_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_n_s64)))
svint64_t svsublbt_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_n_s16)))
svint16_t svsublbt_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_s32)))
svint32_t svsublbt_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_s64)))
svint64_t svsublbt_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_s16)))
svint16_t svsublbt_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_s32)))
svint32_t svsublt_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_s64)))
svint64_t svsublt_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_s16)))
svint16_t svsublt_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_u32)))
svuint32_t svsublt_n_u32(svuint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_u64)))
svuint64_t svsublt_n_u64(svuint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_u16)))
svuint16_t svsublt_n_u16(svuint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_s32)))
svint32_t svsublt_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_s64)))
svint64_t svsublt_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_s16)))
svint16_t svsublt_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_u32)))
svuint32_t svsublt_u32(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_u64)))
svuint64_t svsublt_u64(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_u16)))
svuint16_t svsublt_u16(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_n_s32)))
svint32_t svsubltb_n_s32(svint16_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_n_s64)))
svint64_t svsubltb_n_s64(svint32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_n_s16)))
svint16_t svsubltb_n_s16(svint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_s32)))
svint32_t svsubltb_s32(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_s64)))
svint64_t svsubltb_s64(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_s16)))
svint16_t svsubltb_s16(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_s32)))
svint32_t svsubwb_n_s32(svint32_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_s64)))
svint64_t svsubwb_n_s64(svint64_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_s16)))
svint16_t svsubwb_n_s16(svint16_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_u32)))
svuint32_t svsubwb_n_u32(svuint32_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_u64)))
svuint64_t svsubwb_n_u64(svuint64_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_u16)))
svuint16_t svsubwb_n_u16(svuint16_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_s32)))
svint32_t svsubwb_s32(svint32_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_s64)))
svint64_t svsubwb_s64(svint64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_s16)))
svint16_t svsubwb_s16(svint16_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_u32)))
svuint32_t svsubwb_u32(svuint32_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_u64)))
svuint64_t svsubwb_u64(svuint64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_u16)))
svuint16_t svsubwb_u16(svuint16_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_s32)))
svint32_t svsubwt_n_s32(svint32_t, int16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_s64)))
svint64_t svsubwt_n_s64(svint64_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_s16)))
svint16_t svsubwt_n_s16(svint16_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_u32)))
svuint32_t svsubwt_n_u32(svuint32_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_u64)))
svuint64_t svsubwt_n_u64(svuint64_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_u16)))
svuint16_t svsubwt_n_u16(svuint16_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_s32)))
svint32_t svsubwt_s32(svint32_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_s64)))
svint64_t svsubwt_s64(svint64_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_s16)))
svint16_t svsubwt_s16(svint16_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_u32)))
svuint32_t svsubwt_u32(svuint32_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_u64)))
svuint64_t svsubwt_u64(svuint64_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_u16)))
svuint16_t svsubwt_u16(svuint16_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_u8)))
svuint8_t svtbl2_u8(svuint8x2_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_u32)))
svuint32_t svtbl2_u32(svuint32x2_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_u64)))
svuint64_t svtbl2_u64(svuint64x2_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_u16)))
svuint16_t svtbl2_u16(svuint16x2_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_s8)))
svint8_t svtbl2_s8(svint8x2_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_f64)))
svfloat64_t svtbl2_f64(svfloat64x2_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_f32)))
svfloat32_t svtbl2_f32(svfloat32x2_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_f16)))
svfloat16_t svtbl2_f16(svfloat16x2_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_s32)))
svint32_t svtbl2_s32(svint32x2_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_s64)))
svint64_t svtbl2_s64(svint64x2_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_s16)))
svint16_t svtbl2_s16(svint16x2_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_u8)))
svuint8_t svtbx_u8(svuint8_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_u32)))
svuint32_t svtbx_u32(svuint32_t, svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_u64)))
svuint64_t svtbx_u64(svuint64_t, svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_u16)))
svuint16_t svtbx_u16(svuint16_t, svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_s8)))
svint8_t svtbx_s8(svint8_t, svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_f64)))
svfloat64_t svtbx_f64(svfloat64_t, svfloat64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_f32)))
svfloat32_t svtbx_f32(svfloat32_t, svfloat32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_f16)))
svfloat16_t svtbx_f16(svfloat16_t, svfloat16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_s32)))
svint32_t svtbx_s32(svint32_t, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_s64)))
svint64_t svtbx_s64(svint64_t, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_s16)))
svint16_t svtbx_s16(svint16_t, svint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s8_m)))
svint8_t svuqadd_n_s8_m(svbool_t, svint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s32_m)))
svint32_t svuqadd_n_s32_m(svbool_t, svint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s64_m)))
svint64_t svuqadd_n_s64_m(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s16_m)))
svint16_t svuqadd_n_s16_m(svbool_t, svint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s8_x)))
svint8_t svuqadd_n_s8_x(svbool_t, svint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s32_x)))
svint32_t svuqadd_n_s32_x(svbool_t, svint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s64_x)))
svint64_t svuqadd_n_s64_x(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s16_x)))
svint16_t svuqadd_n_s16_x(svbool_t, svint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s8_z)))
svint8_t svuqadd_n_s8_z(svbool_t, svint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s32_z)))
svint32_t svuqadd_n_s32_z(svbool_t, svint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s64_z)))
svint64_t svuqadd_n_s64_z(svbool_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s16_z)))
svint16_t svuqadd_n_s16_z(svbool_t, svint16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s8_m)))
svint8_t svuqadd_s8_m(svbool_t, svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s32_m)))
svint32_t svuqadd_s32_m(svbool_t, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s64_m)))
svint64_t svuqadd_s64_m(svbool_t, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s16_m)))
svint16_t svuqadd_s16_m(svbool_t, svint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s8_x)))
svint8_t svuqadd_s8_x(svbool_t, svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s32_x)))
svint32_t svuqadd_s32_x(svbool_t, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s64_x)))
svint64_t svuqadd_s64_x(svbool_t, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s16_x)))
svint16_t svuqadd_s16_x(svbool_t, svint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s8_z)))
svint8_t svuqadd_s8_z(svbool_t, svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s32_z)))
svint32_t svuqadd_s32_z(svbool_t, svint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s64_z)))
svint64_t svuqadd_s64_z(svbool_t, svint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s16_z)))
svint16_t svuqadd_s16_z(svbool_t, svint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b8_s32)))
svbool_t svwhilege_b8_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b32_s32)))
svbool_t svwhilege_b32_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b64_s32)))
svbool_t svwhilege_b64_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b16_s32)))
svbool_t svwhilege_b16_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b8_s64)))
svbool_t svwhilege_b8_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b32_s64)))
svbool_t svwhilege_b32_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b64_s64)))
svbool_t svwhilege_b64_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b16_s64)))
svbool_t svwhilege_b16_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b8_u32)))
svbool_t svwhilege_b8_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b32_u32)))
svbool_t svwhilege_b32_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b64_u32)))
svbool_t svwhilege_b64_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b16_u32)))
svbool_t svwhilege_b16_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b8_u64)))
svbool_t svwhilege_b8_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b32_u64)))
svbool_t svwhilege_b32_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b64_u64)))
svbool_t svwhilege_b64_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b16_u64)))
svbool_t svwhilege_b16_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b8_s32)))
svbool_t svwhilegt_b8_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b32_s32)))
svbool_t svwhilegt_b32_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b64_s32)))
svbool_t svwhilegt_b64_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b16_s32)))
svbool_t svwhilegt_b16_s32(int32_t, int32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b8_s64)))
svbool_t svwhilegt_b8_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b32_s64)))
svbool_t svwhilegt_b32_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b64_s64)))
svbool_t svwhilegt_b64_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b16_s64)))
svbool_t svwhilegt_b16_s64(int64_t, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b8_u32)))
svbool_t svwhilegt_b8_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b32_u32)))
svbool_t svwhilegt_b32_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b64_u32)))
svbool_t svwhilegt_b64_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b16_u32)))
svbool_t svwhilegt_b16_u32(uint32_t, uint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b8_u64)))
svbool_t svwhilegt_b8_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b32_u64)))
svbool_t svwhilegt_b32_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b64_u64)))
svbool_t svwhilegt_b64_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b16_u64)))
svbool_t svwhilegt_b16_u64(uint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_u8)))
svbool_t svwhilerw_u8(uint8_t const *, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_s8)))
svbool_t svwhilerw_s8(int8_t const *, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_u64)))
svbool_t svwhilerw_u64(uint64_t const *, uint64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_f64)))
svbool_t svwhilerw_f64(float64_t const *, float64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_s64)))
svbool_t svwhilerw_s64(int64_t const *, int64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_u16)))
svbool_t svwhilerw_u16(uint16_t const *, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_f16)))
svbool_t svwhilerw_f16(float16_t const *, float16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_s16)))
svbool_t svwhilerw_s16(int16_t const *, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_u32)))
svbool_t svwhilerw_u32(uint32_t const *, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_f32)))
svbool_t svwhilerw_f32(float32_t const *, float32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_s32)))
svbool_t svwhilerw_s32(int32_t const *, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_u8)))
svbool_t svwhilewr_u8(uint8_t const *, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_s8)))
svbool_t svwhilewr_s8(int8_t const *, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_u64)))
svbool_t svwhilewr_u64(uint64_t const *, uint64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_f64)))
svbool_t svwhilewr_f64(float64_t const *, float64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_s64)))
svbool_t svwhilewr_s64(int64_t const *, int64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_u16)))
svbool_t svwhilewr_u16(uint16_t const *, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_f16)))
svbool_t svwhilewr_f16(float16_t const *, float16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_s16)))
svbool_t svwhilewr_s16(int16_t const *, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_u32)))
svbool_t svwhilewr_u32(uint32_t const *, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_f32)))
svbool_t svwhilewr_f32(float32_t const *, float32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_s32)))
svbool_t svwhilewr_s32(int32_t const *, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_u8)))
svuint8_t svxar_n_u8(svuint8_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_u32)))
svuint32_t svxar_n_u32(svuint32_t, svuint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_u64)))
svuint64_t svxar_n_u64(svuint64_t, svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_u16)))
svuint16_t svxar_n_u16(svuint16_t, svuint16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_s8)))
svint8_t svxar_n_s8(svint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_s32)))
svint32_t svxar_n_s32(svint32_t, svint32_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_s64)))
svint64_t svxar_n_s64(svint64_t, svint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_s16)))
svint16_t svxar_n_s16(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_s8)))
svint8_t svaba(svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_s32)))
svint32_t svaba(svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_s64)))
svint64_t svaba(svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_s16)))
svint16_t svaba(svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_u8)))
svuint8_t svaba(svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_u32)))
svuint32_t svaba(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_u64)))
svuint64_t svaba(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_n_u16)))
svuint16_t svaba(svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_s8)))
svint8_t svaba(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_s32)))
svint32_t svaba(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_s64)))
svint64_t svaba(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_s16)))
svint16_t svaba(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_u8)))
svuint8_t svaba(svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_u32)))
svuint32_t svaba(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_u64)))
svuint64_t svaba(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaba_u16)))
svuint16_t svaba(svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_s32)))
svint32_t svabalb(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_s64)))
svint64_t svabalb(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_s16)))
svint16_t svabalb(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_u32)))
svuint32_t svabalb(svuint32_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_u64)))
svuint64_t svabalb(svuint64_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_n_u16)))
svuint16_t svabalb(svuint16_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_s32)))
svint32_t svabalb(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_s64)))
svint64_t svabalb(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_s16)))
svint16_t svabalb(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_u32)))
svuint32_t svabalb(svuint32_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_u64)))
svuint64_t svabalb(svuint64_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalb_u16)))
svuint16_t svabalb(svuint16_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_s32)))
svint32_t svabalt(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_s64)))
svint64_t svabalt(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_s16)))
svint16_t svabalt(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_u32)))
svuint32_t svabalt(svuint32_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_u64)))
svuint64_t svabalt(svuint64_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_n_u16)))
svuint16_t svabalt(svuint16_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_s32)))
svint32_t svabalt(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_s64)))
svint64_t svabalt(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_s16)))
svint16_t svabalt(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_u32)))
svuint32_t svabalt(svuint32_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_u64)))
svuint64_t svabalt(svuint64_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabalt_u16)))
svuint16_t svabalt(svuint16_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_s32)))
svint32_t svabdlb(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_s64)))
svint64_t svabdlb(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_s16)))
svint16_t svabdlb(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_u32)))
svuint32_t svabdlb(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_u64)))
svuint64_t svabdlb(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_n_u16)))
svuint16_t svabdlb(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_s32)))
svint32_t svabdlb(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_s64)))
svint64_t svabdlb(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_s16)))
svint16_t svabdlb(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_u32)))
svuint32_t svabdlb(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_u64)))
svuint64_t svabdlb(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlb_u16)))
svuint16_t svabdlb(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_s32)))
svint32_t svabdlt(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_s64)))
svint64_t svabdlt(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_s16)))
svint16_t svabdlt(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_u32)))
svuint32_t svabdlt(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_u64)))
svuint64_t svabdlt(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_n_u16)))
svuint16_t svabdlt(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_s32)))
svint32_t svabdlt(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_s64)))
svint64_t svabdlt(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_s16)))
svint16_t svabdlt(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_u32)))
svuint32_t svabdlt(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_u64)))
svuint64_t svabdlt(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svabdlt_u16)))
svuint16_t svabdlt(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s32_m)))
svint32_t svadalp_m(svbool_t, svint32_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s64_m)))
svint64_t svadalp_m(svbool_t, svint64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s16_m)))
svint16_t svadalp_m(svbool_t, svint16_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s32_x)))
svint32_t svadalp_x(svbool_t, svint32_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s64_x)))
svint64_t svadalp_x(svbool_t, svint64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s16_x)))
svint16_t svadalp_x(svbool_t, svint16_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s32_z)))
svint32_t svadalp_z(svbool_t, svint32_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s64_z)))
svint64_t svadalp_z(svbool_t, svint64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_s16_z)))
svint16_t svadalp_z(svbool_t, svint16_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u32_m)))
svuint32_t svadalp_m(svbool_t, svuint32_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u64_m)))
svuint64_t svadalp_m(svbool_t, svuint64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u16_m)))
svuint16_t svadalp_m(svbool_t, svuint16_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u32_x)))
svuint32_t svadalp_x(svbool_t, svuint32_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u64_x)))
svuint64_t svadalp_x(svbool_t, svuint64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u16_x)))
svuint16_t svadalp_x(svbool_t, svuint16_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u32_z)))
svuint32_t svadalp_z(svbool_t, svuint32_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u64_z)))
svuint64_t svadalp_z(svbool_t, svuint64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadalp_u16_z)))
svuint16_t svadalp_z(svbool_t, svuint16_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclb_n_u32)))
svuint32_t svadclb(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclb_n_u64)))
svuint64_t svadclb(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclb_u32)))
svuint32_t svadclb(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclb_u64)))
svuint64_t svadclb(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclt_n_u32)))
svuint32_t svadclt(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclt_n_u64)))
svuint64_t svadclt(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclt_u32)))
svuint32_t svadclt(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svadclt_u64)))
svuint64_t svadclt(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_u32)))
svuint16_t svaddhnb(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_u64)))
svuint32_t svaddhnb(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_u16)))
svuint8_t svaddhnb(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_s32)))
svint16_t svaddhnb(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_s64)))
svint32_t svaddhnb(svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_n_s16)))
svint8_t svaddhnb(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_u32)))
svuint16_t svaddhnb(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_u64)))
svuint32_t svaddhnb(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_u16)))
svuint8_t svaddhnb(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_s32)))
svint16_t svaddhnb(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_s64)))
svint32_t svaddhnb(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnb_s16)))
svint8_t svaddhnb(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_u32)))
svuint16_t svaddhnt(svuint16_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_u64)))
svuint32_t svaddhnt(svuint32_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_u16)))
svuint8_t svaddhnt(svuint8_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_s32)))
svint16_t svaddhnt(svint16_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_s64)))
svint32_t svaddhnt(svint32_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_n_s16)))
svint8_t svaddhnt(svint8_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_u32)))
svuint16_t svaddhnt(svuint16_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_u64)))
svuint32_t svaddhnt(svuint32_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_u16)))
svuint8_t svaddhnt(svuint8_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_s32)))
svint16_t svaddhnt(svint16_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_s64)))
svint32_t svaddhnt(svint32_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddhnt_s16)))
svint8_t svaddhnt(svint8_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_s32)))
svint32_t svaddlb(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_s64)))
svint64_t svaddlb(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_s16)))
svint16_t svaddlb(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_u32)))
svuint32_t svaddlb(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_u64)))
svuint64_t svaddlb(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_n_u16)))
svuint16_t svaddlb(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_s32)))
svint32_t svaddlb(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_s64)))
svint64_t svaddlb(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_s16)))
svint16_t svaddlb(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_u32)))
svuint32_t svaddlb(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_u64)))
svuint64_t svaddlb(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlb_u16)))
svuint16_t svaddlb(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_n_s32)))
svint32_t svaddlbt(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_n_s64)))
svint64_t svaddlbt(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_n_s16)))
svint16_t svaddlbt(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_s32)))
svint32_t svaddlbt(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_s64)))
svint64_t svaddlbt(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlbt_s16)))
svint16_t svaddlbt(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_s32)))
svint32_t svaddlt(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_s64)))
svint64_t svaddlt(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_s16)))
svint16_t svaddlt(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_u32)))
svuint32_t svaddlt(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_u64)))
svuint64_t svaddlt(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_n_u16)))
svuint16_t svaddlt(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_s32)))
svint32_t svaddlt(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_s64)))
svint64_t svaddlt(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_s16)))
svint16_t svaddlt(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_u32)))
svuint32_t svaddlt(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_u64)))
svuint64_t svaddlt(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddlt_u16)))
svuint16_t svaddlt(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f64_m)))
svfloat64_t svaddp_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f32_m)))
svfloat32_t svaddp_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f16_m)))
svfloat16_t svaddp_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f64_x)))
svfloat64_t svaddp_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f32_x)))
svfloat32_t svaddp_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_f16_x)))
svfloat16_t svaddp_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u8_m)))
svuint8_t svaddp_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u32_m)))
svuint32_t svaddp_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u64_m)))
svuint64_t svaddp_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u16_m)))
svuint16_t svaddp_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s8_m)))
svint8_t svaddp_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s32_m)))
svint32_t svaddp_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s64_m)))
svint64_t svaddp_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s16_m)))
svint16_t svaddp_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u8_x)))
svuint8_t svaddp_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u32_x)))
svuint32_t svaddp_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u64_x)))
svuint64_t svaddp_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_u16_x)))
svuint16_t svaddp_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s8_x)))
svint8_t svaddp_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s32_x)))
svint32_t svaddp_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s64_x)))
svint64_t svaddp_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddp_s16_x)))
svint16_t svaddp_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_s32)))
svint32_t svaddwb(svint32_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_s64)))
svint64_t svaddwb(svint64_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_s16)))
svint16_t svaddwb(svint16_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_u32)))
svuint32_t svaddwb(svuint32_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_u64)))
svuint64_t svaddwb(svuint64_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_n_u16)))
svuint16_t svaddwb(svuint16_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_s32)))
svint32_t svaddwb(svint32_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_s64)))
svint64_t svaddwb(svint64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_s16)))
svint16_t svaddwb(svint16_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_u32)))
svuint32_t svaddwb(svuint32_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_u64)))
svuint64_t svaddwb(svuint64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwb_u16)))
svuint16_t svaddwb(svuint16_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_s32)))
svint32_t svaddwt(svint32_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_s64)))
svint64_t svaddwt(svint64_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_s16)))
svint16_t svaddwt(svint16_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_u32)))
svuint32_t svaddwt(svuint32_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_u64)))
svuint64_t svaddwt(svuint64_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_n_u16)))
svuint16_t svaddwt(svuint16_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_s32)))
svint32_t svaddwt(svint32_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_s64)))
svint64_t svaddwt(svint64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_s16)))
svint16_t svaddwt(svint16_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_u32)))
svuint32_t svaddwt(svuint32_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_u64)))
svuint64_t svaddwt(svuint64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaddwt_u16)))
svuint16_t svaddwt(svuint16_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_u8)))
svuint8_t svbcax(svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_u32)))
svuint32_t svbcax(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_u64)))
svuint64_t svbcax(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_u16)))
svuint16_t svbcax(svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_s8)))
svint8_t svbcax(svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_s32)))
svint32_t svbcax(svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_s64)))
svint64_t svbcax(svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_n_s16)))
svint16_t svbcax(svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_u8)))
svuint8_t svbcax(svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_u32)))
svuint32_t svbcax(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_u64)))
svuint64_t svbcax(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_u16)))
svuint16_t svbcax(svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_s8)))
svint8_t svbcax(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_s32)))
svint32_t svbcax(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_s64)))
svint64_t svbcax(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbcax_s16)))
svint16_t svbcax(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_u8)))
svuint8_t svbsl1n(svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_u32)))
svuint32_t svbsl1n(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_u64)))
svuint64_t svbsl1n(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_u16)))
svuint16_t svbsl1n(svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_s8)))
svint8_t svbsl1n(svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_s32)))
svint32_t svbsl1n(svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_s64)))
svint64_t svbsl1n(svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_n_s16)))
svint16_t svbsl1n(svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_u8)))
svuint8_t svbsl1n(svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_u32)))
svuint32_t svbsl1n(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_u64)))
svuint64_t svbsl1n(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_u16)))
svuint16_t svbsl1n(svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_s8)))
svint8_t svbsl1n(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_s32)))
svint32_t svbsl1n(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_s64)))
svint64_t svbsl1n(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl1n_s16)))
svint16_t svbsl1n(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_u8)))
svuint8_t svbsl2n(svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_u32)))
svuint32_t svbsl2n(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_u64)))
svuint64_t svbsl2n(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_u16)))
svuint16_t svbsl2n(svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_s8)))
svint8_t svbsl2n(svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_s32)))
svint32_t svbsl2n(svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_s64)))
svint64_t svbsl2n(svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_n_s16)))
svint16_t svbsl2n(svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_u8)))
svuint8_t svbsl2n(svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_u32)))
svuint32_t svbsl2n(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_u64)))
svuint64_t svbsl2n(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_u16)))
svuint16_t svbsl2n(svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_s8)))
svint8_t svbsl2n(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_s32)))
svint32_t svbsl2n(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_s64)))
svint64_t svbsl2n(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl2n_s16)))
svint16_t svbsl2n(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_u8)))
svuint8_t svbsl(svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_u32)))
svuint32_t svbsl(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_u64)))
svuint64_t svbsl(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_u16)))
svuint16_t svbsl(svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_s8)))
svint8_t svbsl(svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_s32)))
svint32_t svbsl(svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_s64)))
svint64_t svbsl(svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_n_s16)))
svint16_t svbsl(svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_u8)))
svuint8_t svbsl(svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_u32)))
svuint32_t svbsl(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_u64)))
svuint64_t svbsl(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_u16)))
svuint16_t svbsl(svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_s8)))
svint8_t svbsl(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_s32)))
svint32_t svbsl(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_s64)))
svint64_t svbsl(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbsl_s16)))
svint16_t svbsl(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_u8)))
svuint8_t svcadd(svuint8_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_u32)))
svuint32_t svcadd(svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_u64)))
svuint64_t svcadd(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_u16)))
svuint16_t svcadd(svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_s8)))
svint8_t svcadd(svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_s32)))
svint32_t svcadd(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_s64)))
svint64_t svcadd(svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcadd_s16)))
svint16_t svcadd(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcdot_s32)))
svint32_t svcdot(svint32_t, svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcdot_s64)))
svint64_t svcdot(svint64_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcdot_lane_s32)))
svint32_t svcdot_lane(svint32_t, svint8_t, svint8_t, uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcdot_lane_s64)))
svint64_t svcdot_lane(svint64_t, svint16_t, svint16_t, uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_u8)))
svuint8_t svcmla(svuint8_t, svuint8_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_u32)))
svuint32_t svcmla(svuint32_t, svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_u64)))
svuint64_t svcmla(svuint64_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_u16)))
svuint16_t svcmla(svuint16_t, svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_s8)))
svint8_t svcmla(svint8_t, svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_s32)))
svint32_t svcmla(svint32_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_s64)))
svint64_t svcmla(svint64_t, svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_s16)))
svint16_t svcmla(svint16_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_u32)))
svuint32_t svcmla_lane(svuint32_t, svuint32_t, svuint32_t, uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_u16)))
svuint16_t svcmla_lane(svuint16_t, svuint16_t, svuint16_t, uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_s32)))
svint32_t svcmla_lane(svint32_t, svint32_t, svint32_t, uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcmla_lane_s16)))
svint16_t svcmla_lane(svint16_t, svint16_t, svint16_t, uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtlt_f32_f16_m)))
svfloat32_t svcvtlt_f32_m(svfloat32_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtlt_f32_f16_x)))
svfloat32_t svcvtlt_f32_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtlt_f64_f32_m)))
svfloat64_t svcvtlt_f64_m(svfloat64_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtlt_f64_f32_x)))
svfloat64_t svcvtlt_f64_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtnt_f16_f32_m)))
svfloat16_t svcvtnt_f16_m(svfloat16_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtnt_f32_f64_m)))
svfloat32_t svcvtnt_f32_m(svfloat32_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtx_f32_f64_m)))
svfloat32_t svcvtx_f32_m(svfloat32_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtx_f32_f64_x)))
svfloat32_t svcvtx_f32_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtx_f32_f64_z)))
svfloat32_t svcvtx_f32_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtxnt_f32_f64_m)))
svfloat32_t svcvtxnt_f32_m(svfloat32_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_u8)))
svuint8_t sveor3(svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_u32)))
svuint32_t sveor3(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_u64)))
svuint64_t sveor3(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_u16)))
svuint16_t sveor3(svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_s8)))
svint8_t sveor3(svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_s32)))
svint32_t sveor3(svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_s64)))
svint64_t sveor3(svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_n_s16)))
svint16_t sveor3(svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_u8)))
svuint8_t sveor3(svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_u32)))
svuint32_t sveor3(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_u64)))
svuint64_t sveor3(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_u16)))
svuint16_t sveor3(svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_s8)))
svint8_t sveor3(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_s32)))
svint32_t sveor3(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_s64)))
svint64_t sveor3(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveor3_s16)))
svint16_t sveor3(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_u8)))
svuint8_t sveorbt(svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_u32)))
svuint32_t sveorbt(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_u64)))
svuint64_t sveorbt(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_u16)))
svuint16_t sveorbt(svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_s8)))
svint8_t sveorbt(svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_s32)))
svint32_t sveorbt(svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_s64)))
svint64_t sveorbt(svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_n_s16)))
svint16_t sveorbt(svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_u8)))
svuint8_t sveorbt(svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_u32)))
svuint32_t sveorbt(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_u64)))
svuint64_t sveorbt(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_u16)))
svuint16_t sveorbt(svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_s8)))
svint8_t sveorbt(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_s32)))
svint32_t sveorbt(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_s64)))
svint64_t sveorbt(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveorbt_s16)))
svint16_t sveorbt(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_u8)))
svuint8_t sveortb(svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_u32)))
svuint32_t sveortb(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_u64)))
svuint64_t sveortb(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_u16)))
svuint16_t sveortb(svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_s8)))
svint8_t sveortb(svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_s32)))
svint32_t sveortb(svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_s64)))
svint64_t sveortb(svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_n_s16)))
svint16_t sveortb(svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_u8)))
svuint8_t sveortb(svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_u32)))
svuint32_t sveortb(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_u64)))
svuint64_t sveortb(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_u16)))
svuint16_t sveortb(svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_s8)))
svint8_t sveortb(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_s32)))
svint32_t sveortb(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_s64)))
svint64_t sveortb(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_sveortb_s16)))
svint16_t sveortb(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s8_m)))
svint8_t svhadd_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s32_m)))
svint32_t svhadd_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s64_m)))
svint64_t svhadd_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s16_m)))
svint16_t svhadd_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s8_x)))
svint8_t svhadd_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s32_x)))
svint32_t svhadd_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s64_x)))
svint64_t svhadd_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s16_x)))
svint16_t svhadd_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s8_z)))
svint8_t svhadd_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s32_z)))
svint32_t svhadd_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s64_z)))
svint64_t svhadd_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_s16_z)))
svint16_t svhadd_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u8_m)))
svuint8_t svhadd_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u32_m)))
svuint32_t svhadd_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u64_m)))
svuint64_t svhadd_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u16_m)))
svuint16_t svhadd_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u8_x)))
svuint8_t svhadd_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u32_x)))
svuint32_t svhadd_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u64_x)))
svuint64_t svhadd_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u16_x)))
svuint16_t svhadd_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u8_z)))
svuint8_t svhadd_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u32_z)))
svuint32_t svhadd_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u64_z)))
svuint64_t svhadd_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_n_u16_z)))
svuint16_t svhadd_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s8_m)))
svint8_t svhadd_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s32_m)))
svint32_t svhadd_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s64_m)))
svint64_t svhadd_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s16_m)))
svint16_t svhadd_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s8_x)))
svint8_t svhadd_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s32_x)))
svint32_t svhadd_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s64_x)))
svint64_t svhadd_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s16_x)))
svint16_t svhadd_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s8_z)))
svint8_t svhadd_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s32_z)))
svint32_t svhadd_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s64_z)))
svint64_t svhadd_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_s16_z)))
svint16_t svhadd_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u8_m)))
svuint8_t svhadd_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u32_m)))
svuint32_t svhadd_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u64_m)))
svuint64_t svhadd_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u16_m)))
svuint16_t svhadd_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u8_x)))
svuint8_t svhadd_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u32_x)))
svuint32_t svhadd_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u64_x)))
svuint64_t svhadd_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u16_x)))
svuint16_t svhadd_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u8_z)))
svuint8_t svhadd_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u32_z)))
svuint32_t svhadd_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u64_z)))
svuint64_t svhadd_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhadd_u16_z)))
svuint16_t svhadd_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistcnt_u32_z)))
svuint32_t svhistcnt_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistcnt_u64_z)))
svuint64_t svhistcnt_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistcnt_s32_z)))
svuint32_t svhistcnt_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistcnt_s64_z)))
svuint64_t svhistcnt_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistseg_u8)))
svuint8_t svhistseg(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhistseg_s8)))
svuint8_t svhistseg(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s8_m)))
svint8_t svhsub_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s32_m)))
svint32_t svhsub_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s64_m)))
svint64_t svhsub_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s16_m)))
svint16_t svhsub_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s8_x)))
svint8_t svhsub_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s32_x)))
svint32_t svhsub_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s64_x)))
svint64_t svhsub_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s16_x)))
svint16_t svhsub_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s8_z)))
svint8_t svhsub_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s32_z)))
svint32_t svhsub_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s64_z)))
svint64_t svhsub_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_s16_z)))
svint16_t svhsub_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u8_m)))
svuint8_t svhsub_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u32_m)))
svuint32_t svhsub_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u64_m)))
svuint64_t svhsub_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u16_m)))
svuint16_t svhsub_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u8_x)))
svuint8_t svhsub_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u32_x)))
svuint32_t svhsub_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u64_x)))
svuint64_t svhsub_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u16_x)))
svuint16_t svhsub_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u8_z)))
svuint8_t svhsub_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u32_z)))
svuint32_t svhsub_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u64_z)))
svuint64_t svhsub_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_n_u16_z)))
svuint16_t svhsub_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s8_m)))
svint8_t svhsub_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s32_m)))
svint32_t svhsub_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s64_m)))
svint64_t svhsub_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s16_m)))
svint16_t svhsub_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s8_x)))
svint8_t svhsub_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s32_x)))
svint32_t svhsub_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s64_x)))
svint64_t svhsub_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s16_x)))
svint16_t svhsub_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s8_z)))
svint8_t svhsub_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s32_z)))
svint32_t svhsub_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s64_z)))
svint64_t svhsub_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_s16_z)))
svint16_t svhsub_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u8_m)))
svuint8_t svhsub_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u32_m)))
svuint32_t svhsub_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u64_m)))
svuint64_t svhsub_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u16_m)))
svuint16_t svhsub_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u8_x)))
svuint8_t svhsub_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u32_x)))
svuint32_t svhsub_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u64_x)))
svuint64_t svhsub_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u16_x)))
svuint16_t svhsub_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u8_z)))
svuint8_t svhsub_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u32_z)))
svuint32_t svhsub_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u64_z)))
svuint64_t svhsub_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsub_u16_z)))
svuint16_t svhsub_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s8_m)))
svint8_t svhsubr_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s32_m)))
svint32_t svhsubr_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s64_m)))
svint64_t svhsubr_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s16_m)))
svint16_t svhsubr_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s8_x)))
svint8_t svhsubr_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s32_x)))
svint32_t svhsubr_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s64_x)))
svint64_t svhsubr_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s16_x)))
svint16_t svhsubr_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s8_z)))
svint8_t svhsubr_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s32_z)))
svint32_t svhsubr_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s64_z)))
svint64_t svhsubr_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_s16_z)))
svint16_t svhsubr_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u8_m)))
svuint8_t svhsubr_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u32_m)))
svuint32_t svhsubr_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u64_m)))
svuint64_t svhsubr_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u16_m)))
svuint16_t svhsubr_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u8_x)))
svuint8_t svhsubr_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u32_x)))
svuint32_t svhsubr_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u64_x)))
svuint64_t svhsubr_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u16_x)))
svuint16_t svhsubr_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u8_z)))
svuint8_t svhsubr_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u32_z)))
svuint32_t svhsubr_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u64_z)))
svuint64_t svhsubr_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_n_u16_z)))
svuint16_t svhsubr_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s8_m)))
svint8_t svhsubr_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s32_m)))
svint32_t svhsubr_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s64_m)))
svint64_t svhsubr_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s16_m)))
svint16_t svhsubr_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s8_x)))
svint8_t svhsubr_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s32_x)))
svint32_t svhsubr_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s64_x)))
svint64_t svhsubr_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s16_x)))
svint16_t svhsubr_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s8_z)))
svint8_t svhsubr_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s32_z)))
svint32_t svhsubr_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s64_z)))
svint64_t svhsubr_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_s16_z)))
svint16_t svhsubr_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u8_m)))
svuint8_t svhsubr_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u32_m)))
svuint32_t svhsubr_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u64_m)))
svuint64_t svhsubr_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u16_m)))
svuint16_t svhsubr_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u8_x)))
svuint8_t svhsubr_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u32_x)))
svuint32_t svhsubr_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u64_x)))
svuint64_t svhsubr_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u16_x)))
svuint16_t svhsubr_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u8_z)))
svuint8_t svhsubr_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u32_z)))
svuint32_t svhsubr_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u64_z)))
svuint64_t svhsubr_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svhsubr_u16_z)))
svuint16_t svhsubr_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_index_u32)))
svuint32_t svldnt1_gather_index_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_index_u64)))
svuint64_t svldnt1_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_index_f64)))
svfloat64_t svldnt1_gather_index_f64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_index_f32)))
svfloat32_t svldnt1_gather_index_f32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_index_s32)))
svint32_t svldnt1_gather_index_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_index_s64)))
svint64_t svldnt1_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_offset_u32)))
svuint32_t svldnt1_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_offset_u64)))
svuint64_t svldnt1_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_offset_f64)))
svfloat64_t svldnt1_gather_offset_f64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_offset_f32)))
svfloat32_t svldnt1_gather_offset_f32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_offset_s32)))
svint32_t svldnt1_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_offset_s64)))
svint64_t svldnt1_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_u32)))
svuint32_t svldnt1_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_u64)))
svuint64_t svldnt1_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_f64)))
svfloat64_t svldnt1_gather_f64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_f32)))
svfloat32_t svldnt1_gather_f32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32base_s32)))
svint32_t svldnt1_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64base_s64)))
svint64_t svldnt1_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64index_u64)))
svuint64_t svldnt1_gather_index(svbool_t, uint64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64index_f64)))
svfloat64_t svldnt1_gather_index(svbool_t, float64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64index_s64)))
svint64_t svldnt1_gather_index(svbool_t, int64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64index_u64)))
svuint64_t svldnt1_gather_index(svbool_t, uint64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64index_f64)))
svfloat64_t svldnt1_gather_index(svbool_t, float64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64index_s64)))
svint64_t svldnt1_gather_index(svbool_t, int64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32offset_u32)))
svuint32_t svldnt1_gather_offset(svbool_t, uint32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32offset_f32)))
svfloat32_t svldnt1_gather_offset(svbool_t, float32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u32offset_s32)))
svint32_t svldnt1_gather_offset(svbool_t, int32_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64offset_u64)))
svuint64_t svldnt1_gather_offset(svbool_t, uint64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64offset_f64)))
svfloat64_t svldnt1_gather_offset(svbool_t, float64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_s64offset_s64)))
svint64_t svldnt1_gather_offset(svbool_t, int64_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64offset_u64)))
svuint64_t svldnt1_gather_offset(svbool_t, uint64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64offset_f64)))
svfloat64_t svldnt1_gather_offset(svbool_t, float64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_gather_u64offset_s64)))
svint64_t svldnt1_gather_offset(svbool_t, int64_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32base_offset_u32)))
svuint32_t svldnt1sb_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64base_offset_u64)))
svuint64_t svldnt1sb_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32base_offset_s32)))
svint32_t svldnt1sb_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64base_offset_s64)))
svint64_t svldnt1sb_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32base_u32)))
svuint32_t svldnt1sb_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64base_u64)))
svuint64_t svldnt1sb_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32base_s32)))
svint32_t svldnt1sb_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64base_s64)))
svint64_t svldnt1sb_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32offset_u32)))
svuint32_t svldnt1sb_gather_offset_u32(svbool_t, int8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u32offset_s32)))
svint32_t svldnt1sb_gather_offset_s32(svbool_t, int8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_s64offset_u64)))
svuint64_t svldnt1sb_gather_offset_u64(svbool_t, int8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_s64offset_s64)))
svint64_t svldnt1sb_gather_offset_s64(svbool_t, int8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64offset_u64)))
svuint64_t svldnt1sb_gather_offset_u64(svbool_t, int8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sb_gather_u64offset_s64)))
svint64_t svldnt1sb_gather_offset_s64(svbool_t, int8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_index_u32)))
svuint32_t svldnt1sh_gather_index_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_index_u64)))
svuint64_t svldnt1sh_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_index_s32)))
svint32_t svldnt1sh_gather_index_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_index_s64)))
svint64_t svldnt1sh_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_offset_u32)))
svuint32_t svldnt1sh_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_offset_u64)))
svuint64_t svldnt1sh_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_offset_s32)))
svint32_t svldnt1sh_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_offset_s64)))
svint64_t svldnt1sh_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_u32)))
svuint32_t svldnt1sh_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_u64)))
svuint64_t svldnt1sh_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32base_s32)))
svint32_t svldnt1sh_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64base_s64)))
svint64_t svldnt1sh_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_s64index_u64)))
svuint64_t svldnt1sh_gather_index_u64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_s64index_s64)))
svint64_t svldnt1sh_gather_index_s64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64index_u64)))
svuint64_t svldnt1sh_gather_index_u64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64index_s64)))
svint64_t svldnt1sh_gather_index_s64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32offset_u32)))
svuint32_t svldnt1sh_gather_offset_u32(svbool_t, int16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u32offset_s32)))
svint32_t svldnt1sh_gather_offset_s32(svbool_t, int16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_s64offset_u64)))
svuint64_t svldnt1sh_gather_offset_u64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_s64offset_s64)))
svint64_t svldnt1sh_gather_offset_s64(svbool_t, int16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64offset_u64)))
svuint64_t svldnt1sh_gather_offset_u64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sh_gather_u64offset_s64)))
svint64_t svldnt1sh_gather_offset_s64(svbool_t, int16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_index_u64)))
svuint64_t svldnt1sw_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_index_s64)))
svint64_t svldnt1sw_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_offset_u64)))
svuint64_t svldnt1sw_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_offset_s64)))
svint64_t svldnt1sw_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_u64)))
svuint64_t svldnt1sw_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64base_s64)))
svint64_t svldnt1sw_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_s64index_u64)))
svuint64_t svldnt1sw_gather_index_u64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_s64index_s64)))
svint64_t svldnt1sw_gather_index_s64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64index_u64)))
svuint64_t svldnt1sw_gather_index_u64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64index_s64)))
svint64_t svldnt1sw_gather_index_s64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_s64offset_u64)))
svuint64_t svldnt1sw_gather_offset_u64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_s64offset_s64)))
svint64_t svldnt1sw_gather_offset_s64(svbool_t, int32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64offset_u64)))
svuint64_t svldnt1sw_gather_offset_u64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1sw_gather_u64offset_s64)))
svint64_t svldnt1sw_gather_offset_s64(svbool_t, int32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32base_offset_u32)))
svuint32_t svldnt1ub_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64base_offset_u64)))
svuint64_t svldnt1ub_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32base_offset_s32)))
svint32_t svldnt1ub_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64base_offset_s64)))
svint64_t svldnt1ub_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32base_u32)))
svuint32_t svldnt1ub_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64base_u64)))
svuint64_t svldnt1ub_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32base_s32)))
svint32_t svldnt1ub_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64base_s64)))
svint64_t svldnt1ub_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32offset_u32)))
svuint32_t svldnt1ub_gather_offset_u32(svbool_t, uint8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u32offset_s32)))
svint32_t svldnt1ub_gather_offset_s32(svbool_t, uint8_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_s64offset_u64)))
svuint64_t svldnt1ub_gather_offset_u64(svbool_t, uint8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_s64offset_s64)))
svint64_t svldnt1ub_gather_offset_s64(svbool_t, uint8_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64offset_u64)))
svuint64_t svldnt1ub_gather_offset_u64(svbool_t, uint8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1ub_gather_u64offset_s64)))
svint64_t svldnt1ub_gather_offset_s64(svbool_t, uint8_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_index_u32)))
svuint32_t svldnt1uh_gather_index_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_index_u64)))
svuint64_t svldnt1uh_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_index_s32)))
svint32_t svldnt1uh_gather_index_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_index_s64)))
svint64_t svldnt1uh_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_offset_u32)))
svuint32_t svldnt1uh_gather_offset_u32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_offset_u64)))
svuint64_t svldnt1uh_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_offset_s32)))
svint32_t svldnt1uh_gather_offset_s32(svbool_t, svuint32_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_offset_s64)))
svint64_t svldnt1uh_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_u32)))
svuint32_t svldnt1uh_gather_u32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_u64)))
svuint64_t svldnt1uh_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32base_s32)))
svint32_t svldnt1uh_gather_s32(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64base_s64)))
svint64_t svldnt1uh_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_s64index_u64)))
svuint64_t svldnt1uh_gather_index_u64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_s64index_s64)))
svint64_t svldnt1uh_gather_index_s64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64index_u64)))
svuint64_t svldnt1uh_gather_index_u64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64index_s64)))
svint64_t svldnt1uh_gather_index_s64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32offset_u32)))
svuint32_t svldnt1uh_gather_offset_u32(svbool_t, uint16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u32offset_s32)))
svint32_t svldnt1uh_gather_offset_s32(svbool_t, uint16_t const *, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_s64offset_u64)))
svuint64_t svldnt1uh_gather_offset_u64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_s64offset_s64)))
svint64_t svldnt1uh_gather_offset_s64(svbool_t, uint16_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64offset_u64)))
svuint64_t svldnt1uh_gather_offset_u64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uh_gather_u64offset_s64)))
svint64_t svldnt1uh_gather_offset_s64(svbool_t, uint16_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_index_u64)))
svuint64_t svldnt1uw_gather_index_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_index_s64)))
svint64_t svldnt1uw_gather_index_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_offset_u64)))
svuint64_t svldnt1uw_gather_offset_u64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_offset_s64)))
svint64_t svldnt1uw_gather_offset_s64(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_u64)))
svuint64_t svldnt1uw_gather_u64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64base_s64)))
svint64_t svldnt1uw_gather_s64(svbool_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_s64index_u64)))
svuint64_t svldnt1uw_gather_index_u64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_s64index_s64)))
svint64_t svldnt1uw_gather_index_s64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64index_u64)))
svuint64_t svldnt1uw_gather_index_u64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64index_s64)))
svint64_t svldnt1uw_gather_index_s64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_s64offset_u64)))
svuint64_t svldnt1uw_gather_offset_u64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_s64offset_s64)))
svint64_t svldnt1uw_gather_offset_s64(svbool_t, uint32_t const *, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64offset_u64)))
svuint64_t svldnt1uw_gather_offset_u64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1uw_gather_u64offset_s64)))
svint64_t svldnt1uw_gather_offset_s64(svbool_t, uint32_t const *, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f64_m)))
svint64_t svlogb_m(svint64_t, svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f32_m)))
svint32_t svlogb_m(svint32_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f16_m)))
svint16_t svlogb_m(svint16_t, svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f64_x)))
svint64_t svlogb_x(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f32_x)))
svint32_t svlogb_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f16_x)))
svint16_t svlogb_x(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f64_z)))
svint64_t svlogb_z(svbool_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f32_z)))
svint32_t svlogb_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlogb_f16_z)))
svint16_t svlogb_z(svbool_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmatch_u8)))
svbool_t svmatch(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmatch_u16)))
svbool_t svmatch(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmatch_s8)))
svbool_t svmatch(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmatch_s16)))
svbool_t svmatch(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f64_m)))
svfloat64_t svmaxnmp_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f32_m)))
svfloat32_t svmaxnmp_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f16_m)))
svfloat16_t svmaxnmp_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f64_x)))
svfloat64_t svmaxnmp_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f32_x)))
svfloat32_t svmaxnmp_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxnmp_f16_x)))
svfloat16_t svmaxnmp_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f64_m)))
svfloat64_t svmaxp_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f32_m)))
svfloat32_t svmaxp_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f16_m)))
svfloat16_t svmaxp_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f64_x)))
svfloat64_t svmaxp_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f32_x)))
svfloat32_t svmaxp_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_f16_x)))
svfloat16_t svmaxp_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s8_m)))
svint8_t svmaxp_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s32_m)))
svint32_t svmaxp_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s64_m)))
svint64_t svmaxp_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s16_m)))
svint16_t svmaxp_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s8_x)))
svint8_t svmaxp_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s32_x)))
svint32_t svmaxp_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s64_x)))
svint64_t svmaxp_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_s16_x)))
svint16_t svmaxp_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u8_m)))
svuint8_t svmaxp_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u32_m)))
svuint32_t svmaxp_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u64_m)))
svuint64_t svmaxp_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u16_m)))
svuint16_t svmaxp_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u8_x)))
svuint8_t svmaxp_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u32_x)))
svuint32_t svmaxp_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u64_x)))
svuint64_t svmaxp_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmaxp_u16_x)))
svuint16_t svmaxp_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f64_m)))
svfloat64_t svminnmp_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f32_m)))
svfloat32_t svminnmp_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f16_m)))
svfloat16_t svminnmp_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f64_x)))
svfloat64_t svminnmp_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f32_x)))
svfloat32_t svminnmp_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminnmp_f16_x)))
svfloat16_t svminnmp_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f64_m)))
svfloat64_t svminp_m(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f32_m)))
svfloat32_t svminp_m(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f16_m)))
svfloat16_t svminp_m(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f64_x)))
svfloat64_t svminp_x(svbool_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f32_x)))
svfloat32_t svminp_x(svbool_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_f16_x)))
svfloat16_t svminp_x(svbool_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s8_m)))
svint8_t svminp_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s32_m)))
svint32_t svminp_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s64_m)))
svint64_t svminp_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s16_m)))
svint16_t svminp_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s8_x)))
svint8_t svminp_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s32_x)))
svint32_t svminp_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s64_x)))
svint64_t svminp_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_s16_x)))
svint16_t svminp_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u8_m)))
svuint8_t svminp_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u32_m)))
svuint32_t svminp_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u64_m)))
svuint64_t svminp_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u16_m)))
svuint16_t svminp_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u8_x)))
svuint8_t svminp_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u32_x)))
svuint32_t svminp_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u64_x)))
svuint64_t svminp_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svminp_u16_x)))
svuint16_t svminp_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_u32)))
svuint32_t svmla_lane(svuint32_t, svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_u64)))
svuint64_t svmla_lane(svuint64_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_u16)))
svuint16_t svmla_lane(svuint16_t, svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_s32)))
svint32_t svmla_lane(svint32_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_s64)))
svint64_t svmla_lane(svint64_t, svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmla_lane_s16)))
svint16_t svmla_lane(svint16_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_f32)))
svfloat32_t svmlalb(svfloat32_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_s32)))
svint32_t svmlalb(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_s64)))
svint64_t svmlalb(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_s16)))
svint16_t svmlalb(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_u32)))
svuint32_t svmlalb(svuint32_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_u64)))
svuint64_t svmlalb(svuint64_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_n_u16)))
svuint16_t svmlalb(svuint16_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_f32)))
svfloat32_t svmlalb(svfloat32_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_s32)))
svint32_t svmlalb(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_s64)))
svint64_t svmlalb(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_s16)))
svint16_t svmlalb(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_u32)))
svuint32_t svmlalb(svuint32_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_u64)))
svuint64_t svmlalb(svuint64_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_u16)))
svuint16_t svmlalb(svuint16_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_lane_f32)))
svfloat32_t svmlalb_lane(svfloat32_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_lane_s32)))
svint32_t svmlalb_lane(svint32_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_lane_s64)))
svint64_t svmlalb_lane(svint64_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_lane_u32)))
svuint32_t svmlalb_lane(svuint32_t, svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalb_lane_u64)))
svuint64_t svmlalb_lane(svuint64_t, svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_f32)))
svfloat32_t svmlalt(svfloat32_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_s32)))
svint32_t svmlalt(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_s64)))
svint64_t svmlalt(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_s16)))
svint16_t svmlalt(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_u32)))
svuint32_t svmlalt(svuint32_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_u64)))
svuint64_t svmlalt(svuint64_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_n_u16)))
svuint16_t svmlalt(svuint16_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_f32)))
svfloat32_t svmlalt(svfloat32_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_s32)))
svint32_t svmlalt(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_s64)))
svint64_t svmlalt(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_s16)))
svint16_t svmlalt(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_u32)))
svuint32_t svmlalt(svuint32_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_u64)))
svuint64_t svmlalt(svuint64_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_u16)))
svuint16_t svmlalt(svuint16_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_lane_f32)))
svfloat32_t svmlalt_lane(svfloat32_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_lane_s32)))
svint32_t svmlalt_lane(svint32_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_lane_s64)))
svint64_t svmlalt_lane(svint64_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_lane_u32)))
svuint32_t svmlalt_lane(svuint32_t, svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlalt_lane_u64)))
svuint64_t svmlalt_lane(svuint64_t, svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_u32)))
svuint32_t svmls_lane(svuint32_t, svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_u64)))
svuint64_t svmls_lane(svuint64_t, svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_u16)))
svuint16_t svmls_lane(svuint16_t, svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_s32)))
svint32_t svmls_lane(svint32_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_s64)))
svint64_t svmls_lane(svint64_t, svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmls_lane_s16)))
svint16_t svmls_lane(svint16_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_f32)))
svfloat32_t svmlslb(svfloat32_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_s32)))
svint32_t svmlslb(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_s64)))
svint64_t svmlslb(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_s16)))
svint16_t svmlslb(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_u32)))
svuint32_t svmlslb(svuint32_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_u64)))
svuint64_t svmlslb(svuint64_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_n_u16)))
svuint16_t svmlslb(svuint16_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_f32)))
svfloat32_t svmlslb(svfloat32_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_s32)))
svint32_t svmlslb(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_s64)))
svint64_t svmlslb(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_s16)))
svint16_t svmlslb(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_u32)))
svuint32_t svmlslb(svuint32_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_u64)))
svuint64_t svmlslb(svuint64_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_u16)))
svuint16_t svmlslb(svuint16_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_lane_f32)))
svfloat32_t svmlslb_lane(svfloat32_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_lane_s32)))
svint32_t svmlslb_lane(svint32_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_lane_s64)))
svint64_t svmlslb_lane(svint64_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_lane_u32)))
svuint32_t svmlslb_lane(svuint32_t, svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslb_lane_u64)))
svuint64_t svmlslb_lane(svuint64_t, svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_f32)))
svfloat32_t svmlslt(svfloat32_t, svfloat16_t, float16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_s32)))
svint32_t svmlslt(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_s64)))
svint64_t svmlslt(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_s16)))
svint16_t svmlslt(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_u32)))
svuint32_t svmlslt(svuint32_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_u64)))
svuint64_t svmlslt(svuint64_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_n_u16)))
svuint16_t svmlslt(svuint16_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_f32)))
svfloat32_t svmlslt(svfloat32_t, svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_s32)))
svint32_t svmlslt(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_s64)))
svint64_t svmlslt(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_s16)))
svint16_t svmlslt(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_u32)))
svuint32_t svmlslt(svuint32_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_u64)))
svuint64_t svmlslt(svuint64_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_u16)))
svuint16_t svmlslt(svuint16_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_lane_f32)))
svfloat32_t svmlslt_lane(svfloat32_t, svfloat16_t, svfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_lane_s32)))
svint32_t svmlslt_lane(svint32_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_lane_s64)))
svint64_t svmlslt_lane(svint64_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_lane_u32)))
svuint32_t svmlslt_lane(svuint32_t, svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmlslt_lane_u64)))
svuint64_t svmlslt_lane(svuint64_t, svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_s32)))
svint32_t svmovlb(svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_s64)))
svint64_t svmovlb(svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_s16)))
svint16_t svmovlb(svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_u32)))
svuint32_t svmovlb(svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_u64)))
svuint64_t svmovlb(svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlb_u16)))
svuint16_t svmovlb(svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_s32)))
svint32_t svmovlt(svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_s64)))
svint64_t svmovlt(svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_s16)))
svint16_t svmovlt(svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_u32)))
svuint32_t svmovlt(svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_u64)))
svuint64_t svmovlt(svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmovlt_u16)))
svuint16_t svmovlt(svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_u32)))
svuint32_t svmul_lane(svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_u64)))
svuint64_t svmul_lane(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_u16)))
svuint16_t svmul_lane(svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_s32)))
svint32_t svmul_lane(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_s64)))
svint64_t svmul_lane(svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmul_lane_s16)))
svint16_t svmul_lane(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_s32)))
svint32_t svmullb(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_s64)))
svint64_t svmullb(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_s16)))
svint16_t svmullb(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_u32)))
svuint32_t svmullb(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_u64)))
svuint64_t svmullb(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_n_u16)))
svuint16_t svmullb(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_s32)))
svint32_t svmullb(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_s64)))
svint64_t svmullb(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_s16)))
svint16_t svmullb(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_u32)))
svuint32_t svmullb(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_u64)))
svuint64_t svmullb(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_u16)))
svuint16_t svmullb(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_lane_s32)))
svint32_t svmullb_lane(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_lane_s64)))
svint64_t svmullb_lane(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_lane_u32)))
svuint32_t svmullb_lane(svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullb_lane_u64)))
svuint64_t svmullb_lane(svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_s32)))
svint32_t svmullt(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_s64)))
svint64_t svmullt(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_s16)))
svint16_t svmullt(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_u32)))
svuint32_t svmullt(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_u64)))
svuint64_t svmullt(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_n_u16)))
svuint16_t svmullt(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_s32)))
svint32_t svmullt(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_s64)))
svint64_t svmullt(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_s16)))
svint16_t svmullt(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_u32)))
svuint32_t svmullt(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_u64)))
svuint64_t svmullt(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_u16)))
svuint16_t svmullt(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_lane_s32)))
svint32_t svmullt_lane(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_lane_s64)))
svint64_t svmullt_lane(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_lane_u32)))
svuint32_t svmullt_lane(svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmullt_lane_u64)))
svuint64_t svmullt_lane(svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_u8)))
svuint8_t svnbsl(svuint8_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_u32)))
svuint32_t svnbsl(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_u64)))
svuint64_t svnbsl(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_u16)))
svuint16_t svnbsl(svuint16_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_s8)))
svint8_t svnbsl(svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_s32)))
svint32_t svnbsl(svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_s64)))
svint64_t svnbsl(svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_n_s16)))
svint16_t svnbsl(svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_u8)))
svuint8_t svnbsl(svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_u32)))
svuint32_t svnbsl(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_u64)))
svuint64_t svnbsl(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_u16)))
svuint16_t svnbsl(svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_s8)))
svint8_t svnbsl(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_s32)))
svint32_t svnbsl(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_s64)))
svint64_t svnbsl(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnbsl_s16)))
svint16_t svnbsl(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmatch_u8)))
svbool_t svnmatch(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmatch_u16)))
svbool_t svnmatch(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmatch_s8)))
svbool_t svnmatch(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svnmatch_s16)))
svbool_t svnmatch(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmul_n_u8)))
svuint8_t svpmul(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmul_u8)))
svuint8_t svpmul(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_n_u64)))
svuint64_t svpmullb(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_n_u16)))
svuint16_t svpmullb(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_u64)))
svuint64_t svpmullb(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_u16)))
svuint16_t svpmullb(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_n_u8)))
svuint8_t svpmullb_pair(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_n_u32)))
svuint32_t svpmullb_pair(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_u8)))
svuint8_t svpmullb_pair(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_u32)))
svuint32_t svpmullb_pair(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_n_u64)))
svuint64_t svpmullt(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_n_u16)))
svuint16_t svpmullt(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_u64)))
svuint64_t svpmullt(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_u16)))
svuint16_t svpmullt(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_n_u8)))
svuint8_t svpmullt_pair(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_n_u32)))
svuint32_t svpmullt_pair(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_u8)))
svuint8_t svpmullt_pair(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_u32)))
svuint32_t svpmullt_pair(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s8_m)))
svint8_t svqabs_m(svint8_t, svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s32_m)))
svint32_t svqabs_m(svint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s64_m)))
svint64_t svqabs_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s16_m)))
svint16_t svqabs_m(svint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s8_x)))
svint8_t svqabs_x(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s32_x)))
svint32_t svqabs_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s64_x)))
svint64_t svqabs_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s16_x)))
svint16_t svqabs_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s8_z)))
svint8_t svqabs_z(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s32_z)))
svint32_t svqabs_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s64_z)))
svint64_t svqabs_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqabs_s16_z)))
svint16_t svqabs_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s8_m)))
svint8_t svqadd_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s32_m)))
svint32_t svqadd_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s64_m)))
svint64_t svqadd_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s16_m)))
svint16_t svqadd_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s8_x)))
svint8_t svqadd_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s32_x)))
svint32_t svqadd_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s64_x)))
svint64_t svqadd_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s16_x)))
svint16_t svqadd_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s8_z)))
svint8_t svqadd_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s32_z)))
svint32_t svqadd_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s64_z)))
svint64_t svqadd_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_s16_z)))
svint16_t svqadd_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u8_m)))
svuint8_t svqadd_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u32_m)))
svuint32_t svqadd_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u64_m)))
svuint64_t svqadd_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u16_m)))
svuint16_t svqadd_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u8_x)))
svuint8_t svqadd_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u32_x)))
svuint32_t svqadd_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u64_x)))
svuint64_t svqadd_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u16_x)))
svuint16_t svqadd_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u8_z)))
svuint8_t svqadd_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u32_z)))
svuint32_t svqadd_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u64_z)))
svuint64_t svqadd_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_n_u16_z)))
svuint16_t svqadd_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s8_m)))
svint8_t svqadd_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s32_m)))
svint32_t svqadd_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s64_m)))
svint64_t svqadd_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s16_m)))
svint16_t svqadd_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s8_x)))
svint8_t svqadd_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s32_x)))
svint32_t svqadd_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s64_x)))
svint64_t svqadd_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s16_x)))
svint16_t svqadd_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s8_z)))
svint8_t svqadd_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s32_z)))
svint32_t svqadd_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s64_z)))
svint64_t svqadd_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_s16_z)))
svint16_t svqadd_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u8_m)))
svuint8_t svqadd_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u32_m)))
svuint32_t svqadd_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u64_m)))
svuint64_t svqadd_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u16_m)))
svuint16_t svqadd_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u8_x)))
svuint8_t svqadd_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u32_x)))
svuint32_t svqadd_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u64_x)))
svuint64_t svqadd_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u16_x)))
svuint16_t svqadd_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u8_z)))
svuint8_t svqadd_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u32_z)))
svuint32_t svqadd_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u64_z)))
svuint64_t svqadd_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqadd_u16_z)))
svuint16_t svqadd_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqcadd_s8)))
svint8_t svqcadd(svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqcadd_s32)))
svint32_t svqcadd(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqcadd_s64)))
svint64_t svqcadd(svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqcadd_s16)))
svint16_t svqcadd(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_n_s32)))
svint32_t svqdmlalb(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_n_s64)))
svint64_t svqdmlalb(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_n_s16)))
svint16_t svqdmlalb(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_s32)))
svint32_t svqdmlalb(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_s64)))
svint64_t svqdmlalb(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_s16)))
svint16_t svqdmlalb(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_lane_s32)))
svint32_t svqdmlalb_lane(svint32_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalb_lane_s64)))
svint64_t svqdmlalb_lane(svint64_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_n_s32)))
svint32_t svqdmlalbt(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_n_s64)))
svint64_t svqdmlalbt(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_n_s16)))
svint16_t svqdmlalbt(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_s32)))
svint32_t svqdmlalbt(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_s64)))
svint64_t svqdmlalbt(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalbt_s16)))
svint16_t svqdmlalbt(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_n_s32)))
svint32_t svqdmlalt(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_n_s64)))
svint64_t svqdmlalt(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_n_s16)))
svint16_t svqdmlalt(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_s32)))
svint32_t svqdmlalt(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_s64)))
svint64_t svqdmlalt(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_s16)))
svint16_t svqdmlalt(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_lane_s32)))
svint32_t svqdmlalt_lane(svint32_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlalt_lane_s64)))
svint64_t svqdmlalt_lane(svint64_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_n_s32)))
svint32_t svqdmlslb(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_n_s64)))
svint64_t svqdmlslb(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_n_s16)))
svint16_t svqdmlslb(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_s32)))
svint32_t svqdmlslb(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_s64)))
svint64_t svqdmlslb(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_s16)))
svint16_t svqdmlslb(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_lane_s32)))
svint32_t svqdmlslb_lane(svint32_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslb_lane_s64)))
svint64_t svqdmlslb_lane(svint64_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_n_s32)))
svint32_t svqdmlslbt(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_n_s64)))
svint64_t svqdmlslbt(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_n_s16)))
svint16_t svqdmlslbt(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_s32)))
svint32_t svqdmlslbt(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_s64)))
svint64_t svqdmlslbt(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslbt_s16)))
svint16_t svqdmlslbt(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_n_s32)))
svint32_t svqdmlslt(svint32_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_n_s64)))
svint64_t svqdmlslt(svint64_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_n_s16)))
svint16_t svqdmlslt(svint16_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_s32)))
svint32_t svqdmlslt(svint32_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_s64)))
svint64_t svqdmlslt(svint64_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_s16)))
svint16_t svqdmlslt(svint16_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_lane_s32)))
svint32_t svqdmlslt_lane(svint32_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmlslt_lane_s64)))
svint64_t svqdmlslt_lane(svint64_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_n_s8)))
svint8_t svqdmulh(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_n_s32)))
svint32_t svqdmulh(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_n_s64)))
svint64_t svqdmulh(svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_n_s16)))
svint16_t svqdmulh(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_s8)))
svint8_t svqdmulh(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_s32)))
svint32_t svqdmulh(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_s64)))
svint64_t svqdmulh(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_s16)))
svint16_t svqdmulh(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_lane_s32)))
svint32_t svqdmulh_lane(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_lane_s64)))
svint64_t svqdmulh_lane(svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmulh_lane_s16)))
svint16_t svqdmulh_lane(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_n_s32)))
svint32_t svqdmullb(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_n_s64)))
svint64_t svqdmullb(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_n_s16)))
svint16_t svqdmullb(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_s32)))
svint32_t svqdmullb(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_s64)))
svint64_t svqdmullb(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_s16)))
svint16_t svqdmullb(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_lane_s32)))
svint32_t svqdmullb_lane(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullb_lane_s64)))
svint64_t svqdmullb_lane(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_n_s32)))
svint32_t svqdmullt(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_n_s64)))
svint64_t svqdmullt(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_n_s16)))
svint16_t svqdmullt(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_s32)))
svint32_t svqdmullt(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_s64)))
svint64_t svqdmullt(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_s16)))
svint16_t svqdmullt(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_lane_s32)))
svint32_t svqdmullt_lane(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqdmullt_lane_s64)))
svint64_t svqdmullt_lane(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s8_m)))
svint8_t svqneg_m(svint8_t, svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s32_m)))
svint32_t svqneg_m(svint32_t, svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s64_m)))
svint64_t svqneg_m(svint64_t, svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s16_m)))
svint16_t svqneg_m(svint16_t, svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s8_x)))
svint8_t svqneg_x(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s32_x)))
svint32_t svqneg_x(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s64_x)))
svint64_t svqneg_x(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s16_x)))
svint16_t svqneg_x(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s8_z)))
svint8_t svqneg_z(svbool_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s32_z)))
svint32_t svqneg_z(svbool_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s64_z)))
svint64_t svqneg_z(svbool_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqneg_s16_z)))
svint16_t svqneg_z(svbool_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_s8)))
svint8_t svqrdcmlah(svint8_t, svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_s32)))
svint32_t svqrdcmlah(svint32_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_s64)))
svint64_t svqrdcmlah(svint64_t, svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_s16)))
svint16_t svqrdcmlah(svint16_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_lane_s32)))
svint32_t svqrdcmlah_lane(svint32_t, svint32_t, svint32_t, uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdcmlah_lane_s16)))
svint16_t svqrdcmlah_lane(svint16_t, svint16_t, svint16_t, uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_n_s8)))
svint8_t svqrdmlah(svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_n_s32)))
svint32_t svqrdmlah(svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_n_s64)))
svint64_t svqrdmlah(svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_n_s16)))
svint16_t svqrdmlah(svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_s8)))
svint8_t svqrdmlah(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_s32)))
svint32_t svqrdmlah(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_s64)))
svint64_t svqrdmlah(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_s16)))
svint16_t svqrdmlah(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_lane_s32)))
svint32_t svqrdmlah_lane(svint32_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_lane_s64)))
svint64_t svqrdmlah_lane(svint64_t, svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlah_lane_s16)))
svint16_t svqrdmlah_lane(svint16_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_n_s8)))
svint8_t svqrdmlsh(svint8_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_n_s32)))
svint32_t svqrdmlsh(svint32_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_n_s64)))
svint64_t svqrdmlsh(svint64_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_n_s16)))
svint16_t svqrdmlsh(svint16_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_s8)))
svint8_t svqrdmlsh(svint8_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_s32)))
svint32_t svqrdmlsh(svint32_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_s64)))
svint64_t svqrdmlsh(svint64_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_s16)))
svint16_t svqrdmlsh(svint16_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_lane_s32)))
svint32_t svqrdmlsh_lane(svint32_t, svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_lane_s64)))
svint64_t svqrdmlsh_lane(svint64_t, svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmlsh_lane_s16)))
svint16_t svqrdmlsh_lane(svint16_t, svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_n_s8)))
svint8_t svqrdmulh(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_n_s32)))
svint32_t svqrdmulh(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_n_s64)))
svint64_t svqrdmulh(svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_n_s16)))
svint16_t svqrdmulh(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_s8)))
svint8_t svqrdmulh(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_s32)))
svint32_t svqrdmulh(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_s64)))
svint64_t svqrdmulh(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_s16)))
svint16_t svqrdmulh(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_lane_s32)))
svint32_t svqrdmulh_lane(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_lane_s64)))
svint64_t svqrdmulh_lane(svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrdmulh_lane_s16)))
svint16_t svqrdmulh_lane(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s8_m)))
svint8_t svqrshl_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s32_m)))
svint32_t svqrshl_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s64_m)))
svint64_t svqrshl_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s16_m)))
svint16_t svqrshl_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s8_x)))
svint8_t svqrshl_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s32_x)))
svint32_t svqrshl_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s64_x)))
svint64_t svqrshl_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s16_x)))
svint16_t svqrshl_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s8_z)))
svint8_t svqrshl_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s32_z)))
svint32_t svqrshl_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s64_z)))
svint64_t svqrshl_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_s16_z)))
svint16_t svqrshl_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u8_m)))
svuint8_t svqrshl_m(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u32_m)))
svuint32_t svqrshl_m(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u64_m)))
svuint64_t svqrshl_m(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u16_m)))
svuint16_t svqrshl_m(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u8_x)))
svuint8_t svqrshl_x(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u32_x)))
svuint32_t svqrshl_x(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u64_x)))
svuint64_t svqrshl_x(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u16_x)))
svuint16_t svqrshl_x(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u8_z)))
svuint8_t svqrshl_z(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u32_z)))
svuint32_t svqrshl_z(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u64_z)))
svuint64_t svqrshl_z(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_n_u16_z)))
svuint16_t svqrshl_z(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s8_m)))
svint8_t svqrshl_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s32_m)))
svint32_t svqrshl_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s64_m)))
svint64_t svqrshl_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s16_m)))
svint16_t svqrshl_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s8_x)))
svint8_t svqrshl_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s32_x)))
svint32_t svqrshl_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s64_x)))
svint64_t svqrshl_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s16_x)))
svint16_t svqrshl_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s8_z)))
svint8_t svqrshl_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s32_z)))
svint32_t svqrshl_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s64_z)))
svint64_t svqrshl_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_s16_z)))
svint16_t svqrshl_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u8_m)))
svuint8_t svqrshl_m(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u32_m)))
svuint32_t svqrshl_m(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u64_m)))
svuint64_t svqrshl_m(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u16_m)))
svuint16_t svqrshl_m(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u8_x)))
svuint8_t svqrshl_x(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u32_x)))
svuint32_t svqrshl_x(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u64_x)))
svuint64_t svqrshl_x(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u16_x)))
svuint16_t svqrshl_x(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u8_z)))
svuint8_t svqrshl_z(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u32_z)))
svuint32_t svqrshl_z(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u64_z)))
svuint64_t svqrshl_z(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshl_u16_z)))
svuint16_t svqrshl_z(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_s32)))
svint16_t svqrshrnb(svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_s64)))
svint32_t svqrshrnb(svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_s16)))
svint8_t svqrshrnb(svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_u32)))
svuint16_t svqrshrnb(svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_u64)))
svuint32_t svqrshrnb(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnb_n_u16)))
svuint8_t svqrshrnb(svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_s32)))
svint16_t svqrshrnt(svint16_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_s64)))
svint32_t svqrshrnt(svint32_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_s16)))
svint8_t svqrshrnt(svint8_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_u32)))
svuint16_t svqrshrnt(svuint16_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_u64)))
svuint32_t svqrshrnt(svuint32_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrnt_n_u16)))
svuint8_t svqrshrnt(svuint8_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunb_n_s32)))
svuint16_t svqrshrunb(svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunb_n_s64)))
svuint32_t svqrshrunb(svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunb_n_s16)))
svuint8_t svqrshrunb(svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunt_n_s32)))
svuint16_t svqrshrunt(svuint16_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunt_n_s64)))
svuint32_t svqrshrunt(svuint32_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqrshrunt_n_s16)))
svuint8_t svqrshrunt(svuint8_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s8_m)))
svint8_t svqshl_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s32_m)))
svint32_t svqshl_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s64_m)))
svint64_t svqshl_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s16_m)))
svint16_t svqshl_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s8_x)))
svint8_t svqshl_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s32_x)))
svint32_t svqshl_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s64_x)))
svint64_t svqshl_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s16_x)))
svint16_t svqshl_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s8_z)))
svint8_t svqshl_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s32_z)))
svint32_t svqshl_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s64_z)))
svint64_t svqshl_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_s16_z)))
svint16_t svqshl_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u8_m)))
svuint8_t svqshl_m(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u32_m)))
svuint32_t svqshl_m(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u64_m)))
svuint64_t svqshl_m(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u16_m)))
svuint16_t svqshl_m(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u8_x)))
svuint8_t svqshl_x(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u32_x)))
svuint32_t svqshl_x(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u64_x)))
svuint64_t svqshl_x(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u16_x)))
svuint16_t svqshl_x(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u8_z)))
svuint8_t svqshl_z(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u32_z)))
svuint32_t svqshl_z(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u64_z)))
svuint64_t svqshl_z(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_n_u16_z)))
svuint16_t svqshl_z(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s8_m)))
svint8_t svqshl_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s32_m)))
svint32_t svqshl_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s64_m)))
svint64_t svqshl_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s16_m)))
svint16_t svqshl_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s8_x)))
svint8_t svqshl_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s32_x)))
svint32_t svqshl_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s64_x)))
svint64_t svqshl_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s16_x)))
svint16_t svqshl_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s8_z)))
svint8_t svqshl_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s32_z)))
svint32_t svqshl_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s64_z)))
svint64_t svqshl_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_s16_z)))
svint16_t svqshl_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u8_m)))
svuint8_t svqshl_m(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u32_m)))
svuint32_t svqshl_m(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u64_m)))
svuint64_t svqshl_m(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u16_m)))
svuint16_t svqshl_m(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u8_x)))
svuint8_t svqshl_x(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u32_x)))
svuint32_t svqshl_x(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u64_x)))
svuint64_t svqshl_x(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u16_x)))
svuint16_t svqshl_x(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u8_z)))
svuint8_t svqshl_z(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u32_z)))
svuint32_t svqshl_z(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u64_z)))
svuint64_t svqshl_z(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshl_u16_z)))
svuint16_t svqshl_z(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s8_m)))
svuint8_t svqshlu_m(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s32_m)))
svuint32_t svqshlu_m(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s64_m)))
svuint64_t svqshlu_m(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s16_m)))
svuint16_t svqshlu_m(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s8_x)))
svuint8_t svqshlu_x(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s32_x)))
svuint32_t svqshlu_x(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s64_x)))
svuint64_t svqshlu_x(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s16_x)))
svuint16_t svqshlu_x(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s8_z)))
svuint8_t svqshlu_z(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s32_z)))
svuint32_t svqshlu_z(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s64_z)))
svuint64_t svqshlu_z(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshlu_n_s16_z)))
svuint16_t svqshlu_z(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_s32)))
svint16_t svqshrnb(svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_s64)))
svint32_t svqshrnb(svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_s16)))
svint8_t svqshrnb(svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_u32)))
svuint16_t svqshrnb(svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_u64)))
svuint32_t svqshrnb(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnb_n_u16)))
svuint8_t svqshrnb(svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_s32)))
svint16_t svqshrnt(svint16_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_s64)))
svint32_t svqshrnt(svint32_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_s16)))
svint8_t svqshrnt(svint8_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_u32)))
svuint16_t svqshrnt(svuint16_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_u64)))
svuint32_t svqshrnt(svuint32_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrnt_n_u16)))
svuint8_t svqshrnt(svuint8_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunb_n_s32)))
svuint16_t svqshrunb(svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunb_n_s64)))
svuint32_t svqshrunb(svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunb_n_s16)))
svuint8_t svqshrunb(svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunt_n_s32)))
svuint16_t svqshrunt(svuint16_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunt_n_s64)))
svuint32_t svqshrunt(svuint32_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqshrunt_n_s16)))
svuint8_t svqshrunt(svuint8_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s8_m)))
svint8_t svqsub_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s32_m)))
svint32_t svqsub_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s64_m)))
svint64_t svqsub_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s16_m)))
svint16_t svqsub_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s8_x)))
svint8_t svqsub_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s32_x)))
svint32_t svqsub_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s64_x)))
svint64_t svqsub_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s16_x)))
svint16_t svqsub_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s8_z)))
svint8_t svqsub_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s32_z)))
svint32_t svqsub_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s64_z)))
svint64_t svqsub_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_s16_z)))
svint16_t svqsub_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u8_m)))
svuint8_t svqsub_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u32_m)))
svuint32_t svqsub_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u64_m)))
svuint64_t svqsub_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u16_m)))
svuint16_t svqsub_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u8_x)))
svuint8_t svqsub_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u32_x)))
svuint32_t svqsub_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u64_x)))
svuint64_t svqsub_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u16_x)))
svuint16_t svqsub_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u8_z)))
svuint8_t svqsub_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u32_z)))
svuint32_t svqsub_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u64_z)))
svuint64_t svqsub_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_n_u16_z)))
svuint16_t svqsub_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s8_m)))
svint8_t svqsub_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s32_m)))
svint32_t svqsub_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s64_m)))
svint64_t svqsub_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s16_m)))
svint16_t svqsub_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s8_x)))
svint8_t svqsub_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s32_x)))
svint32_t svqsub_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s64_x)))
svint64_t svqsub_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s16_x)))
svint16_t svqsub_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s8_z)))
svint8_t svqsub_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s32_z)))
svint32_t svqsub_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s64_z)))
svint64_t svqsub_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_s16_z)))
svint16_t svqsub_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u8_m)))
svuint8_t svqsub_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u32_m)))
svuint32_t svqsub_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u64_m)))
svuint64_t svqsub_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u16_m)))
svuint16_t svqsub_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u8_x)))
svuint8_t svqsub_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u32_x)))
svuint32_t svqsub_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u64_x)))
svuint64_t svqsub_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u16_x)))
svuint16_t svqsub_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u8_z)))
svuint8_t svqsub_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u32_z)))
svuint32_t svqsub_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u64_z)))
svuint64_t svqsub_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsub_u16_z)))
svuint16_t svqsub_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s8_m)))
svint8_t svqsubr_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s32_m)))
svint32_t svqsubr_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s64_m)))
svint64_t svqsubr_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s16_m)))
svint16_t svqsubr_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s8_x)))
svint8_t svqsubr_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s32_x)))
svint32_t svqsubr_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s64_x)))
svint64_t svqsubr_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s16_x)))
svint16_t svqsubr_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s8_z)))
svint8_t svqsubr_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s32_z)))
svint32_t svqsubr_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s64_z)))
svint64_t svqsubr_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_s16_z)))
svint16_t svqsubr_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u8_m)))
svuint8_t svqsubr_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u32_m)))
svuint32_t svqsubr_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u64_m)))
svuint64_t svqsubr_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u16_m)))
svuint16_t svqsubr_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u8_x)))
svuint8_t svqsubr_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u32_x)))
svuint32_t svqsubr_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u64_x)))
svuint64_t svqsubr_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u16_x)))
svuint16_t svqsubr_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u8_z)))
svuint8_t svqsubr_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u32_z)))
svuint32_t svqsubr_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u64_z)))
svuint64_t svqsubr_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_n_u16_z)))
svuint16_t svqsubr_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s8_m)))
svint8_t svqsubr_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s32_m)))
svint32_t svqsubr_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s64_m)))
svint64_t svqsubr_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s16_m)))
svint16_t svqsubr_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s8_x)))
svint8_t svqsubr_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s32_x)))
svint32_t svqsubr_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s64_x)))
svint64_t svqsubr_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s16_x)))
svint16_t svqsubr_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s8_z)))
svint8_t svqsubr_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s32_z)))
svint32_t svqsubr_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s64_z)))
svint64_t svqsubr_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_s16_z)))
svint16_t svqsubr_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u8_m)))
svuint8_t svqsubr_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u32_m)))
svuint32_t svqsubr_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u64_m)))
svuint64_t svqsubr_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u16_m)))
svuint16_t svqsubr_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u8_x)))
svuint8_t svqsubr_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u32_x)))
svuint32_t svqsubr_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u64_x)))
svuint64_t svqsubr_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u16_x)))
svuint16_t svqsubr_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u8_z)))
svuint8_t svqsubr_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u32_z)))
svuint32_t svqsubr_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u64_z)))
svuint64_t svqsubr_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqsubr_u16_z)))
svuint16_t svqsubr_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_s32)))
svint16_t svqxtnb(svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_s64)))
svint32_t svqxtnb(svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_s16)))
svint8_t svqxtnb(svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_u32)))
svuint16_t svqxtnb(svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_u64)))
svuint32_t svqxtnb(svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnb_u16)))
svuint8_t svqxtnb(svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_s32)))
svint16_t svqxtnt(svint16_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_s64)))
svint32_t svqxtnt(svint32_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_s16)))
svint8_t svqxtnt(svint8_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_u32)))
svuint16_t svqxtnt(svuint16_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_u64)))
svuint32_t svqxtnt(svuint32_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtnt_u16)))
svuint8_t svqxtnt(svuint8_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunb_s32)))
svuint16_t svqxtunb(svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunb_s64)))
svuint32_t svqxtunb(svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunb_s16)))
svuint8_t svqxtunb(svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunt_s32)))
svuint16_t svqxtunt(svuint16_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunt_s64)))
svuint32_t svqxtunt(svuint32_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svqxtunt_s16)))
svuint8_t svqxtunt(svuint8_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_u32)))
svuint16_t svraddhnb(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_u64)))
svuint32_t svraddhnb(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_u16)))
svuint8_t svraddhnb(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_s32)))
svint16_t svraddhnb(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_s64)))
svint32_t svraddhnb(svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_n_s16)))
svint8_t svraddhnb(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_u32)))
svuint16_t svraddhnb(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_u64)))
svuint32_t svraddhnb(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_u16)))
svuint8_t svraddhnb(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_s32)))
svint16_t svraddhnb(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_s64)))
svint32_t svraddhnb(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnb_s16)))
svint8_t svraddhnb(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_u32)))
svuint16_t svraddhnt(svuint16_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_u64)))
svuint32_t svraddhnt(svuint32_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_u16)))
svuint8_t svraddhnt(svuint8_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_s32)))
svint16_t svraddhnt(svint16_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_s64)))
svint32_t svraddhnt(svint32_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_n_s16)))
svint8_t svraddhnt(svint8_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_u32)))
svuint16_t svraddhnt(svuint16_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_u64)))
svuint32_t svraddhnt(svuint32_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_u16)))
svuint8_t svraddhnt(svuint8_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_s32)))
svint16_t svraddhnt(svint16_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_s64)))
svint32_t svraddhnt(svint32_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svraddhnt_s16)))
svint8_t svraddhnt(svint8_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_u32_m)))
svuint32_t svrecpe_m(svuint32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_u32_x)))
svuint32_t svrecpe_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrecpe_u32_z)))
svuint32_t svrecpe_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s8_m)))
svint8_t svrhadd_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s32_m)))
svint32_t svrhadd_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s64_m)))
svint64_t svrhadd_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s16_m)))
svint16_t svrhadd_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s8_x)))
svint8_t svrhadd_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s32_x)))
svint32_t svrhadd_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s64_x)))
svint64_t svrhadd_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s16_x)))
svint16_t svrhadd_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s8_z)))
svint8_t svrhadd_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s32_z)))
svint32_t svrhadd_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s64_z)))
svint64_t svrhadd_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_s16_z)))
svint16_t svrhadd_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u8_m)))
svuint8_t svrhadd_m(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u32_m)))
svuint32_t svrhadd_m(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u64_m)))
svuint64_t svrhadd_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u16_m)))
svuint16_t svrhadd_m(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u8_x)))
svuint8_t svrhadd_x(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u32_x)))
svuint32_t svrhadd_x(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u64_x)))
svuint64_t svrhadd_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u16_x)))
svuint16_t svrhadd_x(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u8_z)))
svuint8_t svrhadd_z(svbool_t, svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u32_z)))
svuint32_t svrhadd_z(svbool_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u64_z)))
svuint64_t svrhadd_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_n_u16_z)))
svuint16_t svrhadd_z(svbool_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s8_m)))
svint8_t svrhadd_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s32_m)))
svint32_t svrhadd_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s64_m)))
svint64_t svrhadd_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s16_m)))
svint16_t svrhadd_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s8_x)))
svint8_t svrhadd_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s32_x)))
svint32_t svrhadd_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s64_x)))
svint64_t svrhadd_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s16_x)))
svint16_t svrhadd_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s8_z)))
svint8_t svrhadd_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s32_z)))
svint32_t svrhadd_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s64_z)))
svint64_t svrhadd_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_s16_z)))
svint16_t svrhadd_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u8_m)))
svuint8_t svrhadd_m(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u32_m)))
svuint32_t svrhadd_m(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u64_m)))
svuint64_t svrhadd_m(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u16_m)))
svuint16_t svrhadd_m(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u8_x)))
svuint8_t svrhadd_x(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u32_x)))
svuint32_t svrhadd_x(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u64_x)))
svuint64_t svrhadd_x(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u16_x)))
svuint16_t svrhadd_x(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u8_z)))
svuint8_t svrhadd_z(svbool_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u32_z)))
svuint32_t svrhadd_z(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u64_z)))
svuint64_t svrhadd_z(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrhadd_u16_z)))
svuint16_t svrhadd_z(svbool_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s8_m)))
svint8_t svrshl_m(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s32_m)))
svint32_t svrshl_m(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s64_m)))
svint64_t svrshl_m(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s16_m)))
svint16_t svrshl_m(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s8_x)))
svint8_t svrshl_x(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s32_x)))
svint32_t svrshl_x(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s64_x)))
svint64_t svrshl_x(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s16_x)))
svint16_t svrshl_x(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s8_z)))
svint8_t svrshl_z(svbool_t, svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s32_z)))
svint32_t svrshl_z(svbool_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s64_z)))
svint64_t svrshl_z(svbool_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_s16_z)))
svint16_t svrshl_z(svbool_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u8_m)))
svuint8_t svrshl_m(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u32_m)))
svuint32_t svrshl_m(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u64_m)))
svuint64_t svrshl_m(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u16_m)))
svuint16_t svrshl_m(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u8_x)))
svuint8_t svrshl_x(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u32_x)))
svuint32_t svrshl_x(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u64_x)))
svuint64_t svrshl_x(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u16_x)))
svuint16_t svrshl_x(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u8_z)))
svuint8_t svrshl_z(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u32_z)))
svuint32_t svrshl_z(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u64_z)))
svuint64_t svrshl_z(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_n_u16_z)))
svuint16_t svrshl_z(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s8_m)))
svint8_t svrshl_m(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s32_m)))
svint32_t svrshl_m(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s64_m)))
svint64_t svrshl_m(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s16_m)))
svint16_t svrshl_m(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s8_x)))
svint8_t svrshl_x(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s32_x)))
svint32_t svrshl_x(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s64_x)))
svint64_t svrshl_x(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s16_x)))
svint16_t svrshl_x(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s8_z)))
svint8_t svrshl_z(svbool_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s32_z)))
svint32_t svrshl_z(svbool_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s64_z)))
svint64_t svrshl_z(svbool_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_s16_z)))
svint16_t svrshl_z(svbool_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u8_m)))
svuint8_t svrshl_m(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u32_m)))
svuint32_t svrshl_m(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u64_m)))
svuint64_t svrshl_m(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u16_m)))
svuint16_t svrshl_m(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u8_x)))
svuint8_t svrshl_x(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u32_x)))
svuint32_t svrshl_x(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u64_x)))
svuint64_t svrshl_x(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u16_x)))
svuint16_t svrshl_x(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u8_z)))
svuint8_t svrshl_z(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u32_z)))
svuint32_t svrshl_z(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u64_z)))
svuint64_t svrshl_z(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshl_u16_z)))
svuint16_t svrshl_z(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s8_m)))
svint8_t svrshr_m(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s32_m)))
svint32_t svrshr_m(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s64_m)))
svint64_t svrshr_m(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s16_m)))
svint16_t svrshr_m(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u8_m)))
svuint8_t svrshr_m(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u32_m)))
svuint32_t svrshr_m(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u64_m)))
svuint64_t svrshr_m(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u16_m)))
svuint16_t svrshr_m(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s8_x)))
svint8_t svrshr_x(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s32_x)))
svint32_t svrshr_x(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s64_x)))
svint64_t svrshr_x(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s16_x)))
svint16_t svrshr_x(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u8_x)))
svuint8_t svrshr_x(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u32_x)))
svuint32_t svrshr_x(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u64_x)))
svuint64_t svrshr_x(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u16_x)))
svuint16_t svrshr_x(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s8_z)))
svint8_t svrshr_z(svbool_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s32_z)))
svint32_t svrshr_z(svbool_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s64_z)))
svint64_t svrshr_z(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_s16_z)))
svint16_t svrshr_z(svbool_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u8_z)))
svuint8_t svrshr_z(svbool_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u32_z)))
svuint32_t svrshr_z(svbool_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u64_z)))
svuint64_t svrshr_z(svbool_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshr_n_u16_z)))
svuint16_t svrshr_z(svbool_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_u32)))
svuint16_t svrshrnb(svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_u64)))
svuint32_t svrshrnb(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_u16)))
svuint8_t svrshrnb(svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_s32)))
svint16_t svrshrnb(svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_s64)))
svint32_t svrshrnb(svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnb_n_s16)))
svint8_t svrshrnb(svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_u32)))
svuint16_t svrshrnt(svuint16_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_u64)))
svuint32_t svrshrnt(svuint32_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_u16)))
svuint8_t svrshrnt(svuint8_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_s32)))
svint16_t svrshrnt(svint16_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_s64)))
svint32_t svrshrnt(svint32_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrshrnt_n_s16)))
svint8_t svrshrnt(svint8_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_u32_m)))
svuint32_t svrsqrte_m(svuint32_t, svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_u32_x)))
svuint32_t svrsqrte_x(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsqrte_u32_z)))
svuint32_t svrsqrte_z(svbool_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_s8)))
svint8_t svrsra(svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_s32)))
svint32_t svrsra(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_s64)))
svint64_t svrsra(svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_s16)))
svint16_t svrsra(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_u8)))
svuint8_t svrsra(svuint8_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_u32)))
svuint32_t svrsra(svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_u64)))
svuint64_t svrsra(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsra_n_u16)))
svuint16_t svrsra(svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_u32)))
svuint16_t svrsubhnb(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_u64)))
svuint32_t svrsubhnb(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_u16)))
svuint8_t svrsubhnb(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_s32)))
svint16_t svrsubhnb(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_s64)))
svint32_t svrsubhnb(svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_n_s16)))
svint8_t svrsubhnb(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_u32)))
svuint16_t svrsubhnb(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_u64)))
svuint32_t svrsubhnb(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_u16)))
svuint8_t svrsubhnb(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_s32)))
svint16_t svrsubhnb(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_s64)))
svint32_t svrsubhnb(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnb_s16)))
svint8_t svrsubhnb(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_u32)))
svuint16_t svrsubhnt(svuint16_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_u64)))
svuint32_t svrsubhnt(svuint32_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_u16)))
svuint8_t svrsubhnt(svuint8_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_s32)))
svint16_t svrsubhnt(svint16_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_s64)))
svint32_t svrsubhnt(svint32_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_n_s16)))
svint8_t svrsubhnt(svint8_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_u32)))
svuint16_t svrsubhnt(svuint16_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_u64)))
svuint32_t svrsubhnt(svuint32_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_u16)))
svuint8_t svrsubhnt(svuint8_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_s32)))
svint16_t svrsubhnt(svint16_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_s64)))
svint32_t svrsubhnt(svint32_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrsubhnt_s16)))
svint8_t svrsubhnt(svint8_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclb_n_u32)))
svuint32_t svsbclb(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclb_n_u64)))
svuint64_t svsbclb(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclb_u32)))
svuint32_t svsbclb(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclb_u64)))
svuint64_t svsbclb(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclt_n_u32)))
svuint32_t svsbclt(svuint32_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclt_n_u64)))
svuint64_t svsbclt(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclt_u32)))
svuint32_t svsbclt(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsbclt_u64)))
svuint64_t svsbclt(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_s32)))
svint32_t svshllb(svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_s64)))
svint64_t svshllb(svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_s16)))
svint16_t svshllb(svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_u32)))
svuint32_t svshllb(svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_u64)))
svuint64_t svshllb(svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllb_n_u16)))
svuint16_t svshllb(svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_s32)))
svint32_t svshllt(svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_s64)))
svint64_t svshllt(svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_s16)))
svint16_t svshllt(svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_u32)))
svuint32_t svshllt(svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_u64)))
svuint64_t svshllt(svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshllt_n_u16)))
svuint16_t svshllt(svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_u32)))
svuint16_t svshrnb(svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_u64)))
svuint32_t svshrnb(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_u16)))
svuint8_t svshrnb(svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_s32)))
svint16_t svshrnb(svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_s64)))
svint32_t svshrnb(svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnb_n_s16)))
svint8_t svshrnb(svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_u32)))
svuint16_t svshrnt(svuint16_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_u64)))
svuint32_t svshrnt(svuint32_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_u16)))
svuint8_t svshrnt(svuint8_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_s32)))
svint16_t svshrnt(svint16_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_s64)))
svint32_t svshrnt(svint32_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svshrnt_n_s16)))
svint8_t svshrnt(svint8_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_u8)))
svuint8_t svsli(svuint8_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_u32)))
svuint32_t svsli(svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_u64)))
svuint64_t svsli(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_u16)))
svuint16_t svsli(svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_s8)))
svint8_t svsli(svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_s32)))
svint32_t svsli(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_s64)))
svint64_t svsli(svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsli_n_s16)))
svint16_t svsli(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u8_m)))
svuint8_t svsqadd_m(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u32_m)))
svuint32_t svsqadd_m(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u64_m)))
svuint64_t svsqadd_m(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u16_m)))
svuint16_t svsqadd_m(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u8_x)))
svuint8_t svsqadd_x(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u32_x)))
svuint32_t svsqadd_x(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u64_x)))
svuint64_t svsqadd_x(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u16_x)))
svuint16_t svsqadd_x(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u8_z)))
svuint8_t svsqadd_z(svbool_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u32_z)))
svuint32_t svsqadd_z(svbool_t, svuint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u64_z)))
svuint64_t svsqadd_z(svbool_t, svuint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_n_u16_z)))
svuint16_t svsqadd_z(svbool_t, svuint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u8_m)))
svuint8_t svsqadd_m(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u32_m)))
svuint32_t svsqadd_m(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u64_m)))
svuint64_t svsqadd_m(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u16_m)))
svuint16_t svsqadd_m(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u8_x)))
svuint8_t svsqadd_x(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u32_x)))
svuint32_t svsqadd_x(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u64_x)))
svuint64_t svsqadd_x(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u16_x)))
svuint16_t svsqadd_x(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u8_z)))
svuint8_t svsqadd_z(svbool_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u32_z)))
svuint32_t svsqadd_z(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u64_z)))
svuint64_t svsqadd_z(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsqadd_u16_z)))
svuint16_t svsqadd_z(svbool_t, svuint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_s8)))
svint8_t svsra(svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_s32)))
svint32_t svsra(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_s64)))
svint64_t svsra(svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_s16)))
svint16_t svsra(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_u8)))
svuint8_t svsra(svuint8_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_u32)))
svuint32_t svsra(svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_u64)))
svuint64_t svsra(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsra_n_u16)))
svuint16_t svsra(svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_u8)))
svuint8_t svsri(svuint8_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_u32)))
svuint32_t svsri(svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_u64)))
svuint64_t svsri(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_u16)))
svuint16_t svsri(svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_s8)))
svint8_t svsri(svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_s32)))
svint32_t svsri(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_s64)))
svint64_t svsri(svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsri_n_s16)))
svint16_t svsri(svint16_t, svint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_index_u32)))
void svstnt1_scatter_index(svbool_t, svuint32_t, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_index_u64)))
void svstnt1_scatter_index(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_index_f64)))
void svstnt1_scatter_index(svbool_t, svuint64_t, int64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_index_f32)))
void svstnt1_scatter_index(svbool_t, svuint32_t, int64_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_index_s32)))
void svstnt1_scatter_index(svbool_t, svuint32_t, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_index_s64)))
void svstnt1_scatter_index(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_offset_u32)))
void svstnt1_scatter_offset(svbool_t, svuint32_t, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_offset_u64)))
void svstnt1_scatter_offset(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_offset_f64)))
void svstnt1_scatter_offset(svbool_t, svuint64_t, int64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_offset_f32)))
void svstnt1_scatter_offset(svbool_t, svuint32_t, int64_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_offset_s32)))
void svstnt1_scatter_offset(svbool_t, svuint32_t, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_offset_s64)))
void svstnt1_scatter_offset(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_u32)))
void svstnt1_scatter(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_u64)))
void svstnt1_scatter(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_f64)))
void svstnt1_scatter(svbool_t, svuint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_f32)))
void svstnt1_scatter(svbool_t, svuint32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32base_s32)))
void svstnt1_scatter(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64base_s64)))
void svstnt1_scatter(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64index_u64)))
void svstnt1_scatter_index(svbool_t, uint64_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64index_f64)))
void svstnt1_scatter_index(svbool_t, float64_t *, svint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64index_s64)))
void svstnt1_scatter_index(svbool_t, int64_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64index_u64)))
void svstnt1_scatter_index(svbool_t, uint64_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64index_f64)))
void svstnt1_scatter_index(svbool_t, float64_t *, svuint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64index_s64)))
void svstnt1_scatter_index(svbool_t, int64_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32offset_u32)))
void svstnt1_scatter_offset(svbool_t, uint32_t *, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32offset_f32)))
void svstnt1_scatter_offset(svbool_t, float32_t *, svuint32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u32offset_s32)))
void svstnt1_scatter_offset(svbool_t, int32_t *, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64offset_u64)))
void svstnt1_scatter_offset(svbool_t, uint64_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64offset_f64)))
void svstnt1_scatter_offset(svbool_t, float64_t *, svint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_s64offset_s64)))
void svstnt1_scatter_offset(svbool_t, int64_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64offset_u64)))
void svstnt1_scatter_offset(svbool_t, uint64_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64offset_f64)))
void svstnt1_scatter_offset(svbool_t, float64_t *, svuint64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_scatter_u64offset_s64)))
void svstnt1_scatter_offset(svbool_t, int64_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32base_offset_u32)))
void svstnt1b_scatter_offset(svbool_t, svuint32_t, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64base_offset_u64)))
void svstnt1b_scatter_offset(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32base_offset_s32)))
void svstnt1b_scatter_offset(svbool_t, svuint32_t, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64base_offset_s64)))
void svstnt1b_scatter_offset(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32base_u32)))
void svstnt1b_scatter(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64base_u64)))
void svstnt1b_scatter(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32base_s32)))
void svstnt1b_scatter(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64base_s64)))
void svstnt1b_scatter(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32offset_s32)))
void svstnt1b_scatter_offset(svbool_t, int8_t *, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u32offset_u32)))
void svstnt1b_scatter_offset(svbool_t, uint8_t *, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_s64offset_s64)))
void svstnt1b_scatter_offset(svbool_t, int8_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_s64offset_u64)))
void svstnt1b_scatter_offset(svbool_t, uint8_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64offset_s64)))
void svstnt1b_scatter_offset(svbool_t, int8_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1b_scatter_u64offset_u64)))
void svstnt1b_scatter_offset(svbool_t, uint8_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_index_u32)))
void svstnt1h_scatter_index(svbool_t, svuint32_t, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_index_u64)))
void svstnt1h_scatter_index(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_index_s32)))
void svstnt1h_scatter_index(svbool_t, svuint32_t, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_index_s64)))
void svstnt1h_scatter_index(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_offset_u32)))
void svstnt1h_scatter_offset(svbool_t, svuint32_t, int64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_offset_u64)))
void svstnt1h_scatter_offset(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_offset_s32)))
void svstnt1h_scatter_offset(svbool_t, svuint32_t, int64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_offset_s64)))
void svstnt1h_scatter_offset(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_u32)))
void svstnt1h_scatter(svbool_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_u64)))
void svstnt1h_scatter(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32base_s32)))
void svstnt1h_scatter(svbool_t, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64base_s64)))
void svstnt1h_scatter(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_s64index_s64)))
void svstnt1h_scatter_index(svbool_t, int16_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_s64index_u64)))
void svstnt1h_scatter_index(svbool_t, uint16_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64index_s64)))
void svstnt1h_scatter_index(svbool_t, int16_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64index_u64)))
void svstnt1h_scatter_index(svbool_t, uint16_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32offset_s32)))
void svstnt1h_scatter_offset(svbool_t, int16_t *, svuint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u32offset_u32)))
void svstnt1h_scatter_offset(svbool_t, uint16_t *, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_s64offset_s64)))
void svstnt1h_scatter_offset(svbool_t, int16_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_s64offset_u64)))
void svstnt1h_scatter_offset(svbool_t, uint16_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64offset_s64)))
void svstnt1h_scatter_offset(svbool_t, int16_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1h_scatter_u64offset_u64)))
void svstnt1h_scatter_offset(svbool_t, uint16_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_index_u64)))
void svstnt1w_scatter_index(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_index_s64)))
void svstnt1w_scatter_index(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_offset_u64)))
void svstnt1w_scatter_offset(svbool_t, svuint64_t, int64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_offset_s64)))
void svstnt1w_scatter_offset(svbool_t, svuint64_t, int64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_u64)))
void svstnt1w_scatter(svbool_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64base_s64)))
void svstnt1w_scatter(svbool_t, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_s64index_s64)))
void svstnt1w_scatter_index(svbool_t, int32_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_s64index_u64)))
void svstnt1w_scatter_index(svbool_t, uint32_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64index_s64)))
void svstnt1w_scatter_index(svbool_t, int32_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64index_u64)))
void svstnt1w_scatter_index(svbool_t, uint32_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_s64offset_s64)))
void svstnt1w_scatter_offset(svbool_t, int32_t *, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_s64offset_u64)))
void svstnt1w_scatter_offset(svbool_t, uint32_t *, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64offset_s64)))
void svstnt1w_scatter_offset(svbool_t, int32_t *, svuint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1w_scatter_u64offset_u64)))
void svstnt1w_scatter_offset(svbool_t, uint32_t *, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_u32)))
svuint16_t svsubhnb(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_u64)))
svuint32_t svsubhnb(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_u16)))
svuint8_t svsubhnb(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_s32)))
svint16_t svsubhnb(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_s64)))
svint32_t svsubhnb(svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_n_s16)))
svint8_t svsubhnb(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_u32)))
svuint16_t svsubhnb(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_u64)))
svuint32_t svsubhnb(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_u16)))
svuint8_t svsubhnb(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_s32)))
svint16_t svsubhnb(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_s64)))
svint32_t svsubhnb(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnb_s16)))
svint8_t svsubhnb(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_u32)))
svuint16_t svsubhnt(svuint16_t, svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_u64)))
svuint32_t svsubhnt(svuint32_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_u16)))
svuint8_t svsubhnt(svuint8_t, svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_s32)))
svint16_t svsubhnt(svint16_t, svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_s64)))
svint32_t svsubhnt(svint32_t, svint64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_n_s16)))
svint8_t svsubhnt(svint8_t, svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_u32)))
svuint16_t svsubhnt(svuint16_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_u64)))
svuint32_t svsubhnt(svuint32_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_u16)))
svuint8_t svsubhnt(svuint8_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_s32)))
svint16_t svsubhnt(svint16_t, svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_s64)))
svint32_t svsubhnt(svint32_t, svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubhnt_s16)))
svint8_t svsubhnt(svint8_t, svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_s32)))
svint32_t svsublb(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_s64)))
svint64_t svsublb(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_s16)))
svint16_t svsublb(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_u32)))
svuint32_t svsublb(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_u64)))
svuint64_t svsublb(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_n_u16)))
svuint16_t svsublb(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_s32)))
svint32_t svsublb(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_s64)))
svint64_t svsublb(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_s16)))
svint16_t svsublb(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_u32)))
svuint32_t svsublb(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_u64)))
svuint64_t svsublb(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublb_u16)))
svuint16_t svsublb(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_n_s32)))
svint32_t svsublbt(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_n_s64)))
svint64_t svsublbt(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_n_s16)))
svint16_t svsublbt(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_s32)))
svint32_t svsublbt(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_s64)))
svint64_t svsublbt(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublbt_s16)))
svint16_t svsublbt(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_s32)))
svint32_t svsublt(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_s64)))
svint64_t svsublt(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_s16)))
svint16_t svsublt(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_u32)))
svuint32_t svsublt(svuint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_u64)))
svuint64_t svsublt(svuint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_n_u16)))
svuint16_t svsublt(svuint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_s32)))
svint32_t svsublt(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_s64)))
svint64_t svsublt(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_s16)))
svint16_t svsublt(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_u32)))
svuint32_t svsublt(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_u64)))
svuint64_t svsublt(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsublt_u16)))
svuint16_t svsublt(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_n_s32)))
svint32_t svsubltb(svint16_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_n_s64)))
svint64_t svsubltb(svint32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_n_s16)))
svint16_t svsubltb(svint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_s32)))
svint32_t svsubltb(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_s64)))
svint64_t svsubltb(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubltb_s16)))
svint16_t svsubltb(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_s32)))
svint32_t svsubwb(svint32_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_s64)))
svint64_t svsubwb(svint64_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_s16)))
svint16_t svsubwb(svint16_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_u32)))
svuint32_t svsubwb(svuint32_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_u64)))
svuint64_t svsubwb(svuint64_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_n_u16)))
svuint16_t svsubwb(svuint16_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_s32)))
svint32_t svsubwb(svint32_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_s64)))
svint64_t svsubwb(svint64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_s16)))
svint16_t svsubwb(svint16_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_u32)))
svuint32_t svsubwb(svuint32_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_u64)))
svuint64_t svsubwb(svuint64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwb_u16)))
svuint16_t svsubwb(svuint16_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_s32)))
svint32_t svsubwt(svint32_t, int16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_s64)))
svint64_t svsubwt(svint64_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_s16)))
svint16_t svsubwt(svint16_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_u32)))
svuint32_t svsubwt(svuint32_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_u64)))
svuint64_t svsubwt(svuint64_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_n_u16)))
svuint16_t svsubwt(svuint16_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_s32)))
svint32_t svsubwt(svint32_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_s64)))
svint64_t svsubwt(svint64_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_s16)))
svint16_t svsubwt(svint16_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_u32)))
svuint32_t svsubwt(svuint32_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_u64)))
svuint64_t svsubwt(svuint64_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsubwt_u16)))
svuint16_t svsubwt(svuint16_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_u8)))
svuint8_t svtbl2(svuint8x2_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_u32)))
svuint32_t svtbl2(svuint32x2_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_u64)))
svuint64_t svtbl2(svuint64x2_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_u16)))
svuint16_t svtbl2(svuint16x2_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_s8)))
svint8_t svtbl2(svint8x2_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_f64)))
svfloat64_t svtbl2(svfloat64x2_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_f32)))
svfloat32_t svtbl2(svfloat32x2_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_f16)))
svfloat16_t svtbl2(svfloat16x2_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_s32)))
svint32_t svtbl2(svint32x2_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_s64)))
svint64_t svtbl2(svint64x2_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_s16)))
svint16_t svtbl2(svint16x2_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_u8)))
svuint8_t svtbx(svuint8_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_u32)))
svuint32_t svtbx(svuint32_t, svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_u64)))
svuint64_t svtbx(svuint64_t, svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_u16)))
svuint16_t svtbx(svuint16_t, svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_s8)))
svint8_t svtbx(svint8_t, svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_f64)))
svfloat64_t svtbx(svfloat64_t, svfloat64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_f32)))
svfloat32_t svtbx(svfloat32_t, svfloat32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_f16)))
svfloat16_t svtbx(svfloat16_t, svfloat16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_s32)))
svint32_t svtbx(svint32_t, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_s64)))
svint64_t svtbx(svint64_t, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_s16)))
svint16_t svtbx(svint16_t, svint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s8_m)))
svint8_t svuqadd_m(svbool_t, svint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s32_m)))
svint32_t svuqadd_m(svbool_t, svint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s64_m)))
svint64_t svuqadd_m(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s16_m)))
svint16_t svuqadd_m(svbool_t, svint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s8_x)))
svint8_t svuqadd_x(svbool_t, svint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s32_x)))
svint32_t svuqadd_x(svbool_t, svint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s64_x)))
svint64_t svuqadd_x(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s16_x)))
svint16_t svuqadd_x(svbool_t, svint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s8_z)))
svint8_t svuqadd_z(svbool_t, svint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s32_z)))
svint32_t svuqadd_z(svbool_t, svint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s64_z)))
svint64_t svuqadd_z(svbool_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_n_s16_z)))
svint16_t svuqadd_z(svbool_t, svint16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s8_m)))
svint8_t svuqadd_m(svbool_t, svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s32_m)))
svint32_t svuqadd_m(svbool_t, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s64_m)))
svint64_t svuqadd_m(svbool_t, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s16_m)))
svint16_t svuqadd_m(svbool_t, svint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s8_x)))
svint8_t svuqadd_x(svbool_t, svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s32_x)))
svint32_t svuqadd_x(svbool_t, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s64_x)))
svint64_t svuqadd_x(svbool_t, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s16_x)))
svint16_t svuqadd_x(svbool_t, svint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s8_z)))
svint8_t svuqadd_z(svbool_t, svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s32_z)))
svint32_t svuqadd_z(svbool_t, svint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s64_z)))
svint64_t svuqadd_z(svbool_t, svint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuqadd_s16_z)))
svint16_t svuqadd_z(svbool_t, svint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b8_s32)))
svbool_t svwhilege_b8(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b32_s32)))
svbool_t svwhilege_b32(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b64_s32)))
svbool_t svwhilege_b64(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b16_s32)))
svbool_t svwhilege_b16(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b8_s64)))
svbool_t svwhilege_b8(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b32_s64)))
svbool_t svwhilege_b32(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b64_s64)))
svbool_t svwhilege_b64(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b16_s64)))
svbool_t svwhilege_b16(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b8_u32)))
svbool_t svwhilege_b8(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b32_u32)))
svbool_t svwhilege_b32(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b64_u32)))
svbool_t svwhilege_b64(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b16_u32)))
svbool_t svwhilege_b16(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b8_u64)))
svbool_t svwhilege_b8(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b32_u64)))
svbool_t svwhilege_b32(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b64_u64)))
svbool_t svwhilege_b64(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilege_b16_u64)))
svbool_t svwhilege_b16(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b8_s32)))
svbool_t svwhilegt_b8(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b32_s32)))
svbool_t svwhilegt_b32(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b64_s32)))
svbool_t svwhilegt_b64(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b16_s32)))
svbool_t svwhilegt_b16(int32_t, int32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b8_s64)))
svbool_t svwhilegt_b8(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b32_s64)))
svbool_t svwhilegt_b32(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b64_s64)))
svbool_t svwhilegt_b64(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b16_s64)))
svbool_t svwhilegt_b16(int64_t, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b8_u32)))
svbool_t svwhilegt_b8(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b32_u32)))
svbool_t svwhilegt_b32(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b64_u32)))
svbool_t svwhilegt_b64(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b16_u32)))
svbool_t svwhilegt_b16(uint32_t, uint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b8_u64)))
svbool_t svwhilegt_b8(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b32_u64)))
svbool_t svwhilegt_b32(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b64_u64)))
svbool_t svwhilegt_b64(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilegt_b16_u64)))
svbool_t svwhilegt_b16(uint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_u8)))
svbool_t svwhilerw(uint8_t const *, uint8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_s8)))
svbool_t svwhilerw(int8_t const *, int8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_u64)))
svbool_t svwhilerw(uint64_t const *, uint64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_f64)))
svbool_t svwhilerw(float64_t const *, float64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_s64)))
svbool_t svwhilerw(int64_t const *, int64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_u16)))
svbool_t svwhilerw(uint16_t const *, uint16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_f16)))
svbool_t svwhilerw(float16_t const *, float16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_s16)))
svbool_t svwhilerw(int16_t const *, int16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_u32)))
svbool_t svwhilerw(uint32_t const *, uint32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_f32)))
svbool_t svwhilerw(float32_t const *, float32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_s32)))
svbool_t svwhilerw(int32_t const *, int32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_u8)))
svbool_t svwhilewr(uint8_t const *, uint8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_s8)))
svbool_t svwhilewr(int8_t const *, int8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_u64)))
svbool_t svwhilewr(uint64_t const *, uint64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_f64)))
svbool_t svwhilewr(float64_t const *, float64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_s64)))
svbool_t svwhilewr(int64_t const *, int64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_u16)))
svbool_t svwhilewr(uint16_t const *, uint16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_f16)))
svbool_t svwhilewr(float16_t const *, float16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_s16)))
svbool_t svwhilewr(int16_t const *, int16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_u32)))
svbool_t svwhilewr(uint32_t const *, uint32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_f32)))
svbool_t svwhilewr(float32_t const *, float32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_s32)))
svbool_t svwhilewr(int32_t const *, int32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_u8)))
svuint8_t svxar(svuint8_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_u32)))
svuint32_t svxar(svuint32_t, svuint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_u64)))
svuint64_t svxar(svuint64_t, svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_u16)))
svuint16_t svxar(svuint16_t, svuint16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_s8)))
svint8_t svxar(svint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_s32)))
svint32_t svxar(svint32_t, svint32_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_s64)))
svint64_t svxar(svint64_t, svint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svxar_n_s16)))
svint16_t svxar(svint16_t, svint16_t, uint64_t);
#endif  //defined(__ARM_FEATURE_SVE2)

#if defined(__ARM_FEATURE_SVE2) && defined(__ARM_FEATURE_BF16_SCALAR_ARITHMETIC)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_bf16)))
svbool_t svwhilerw_bf16(bfloat16_t const *, bfloat16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_bf16)))
svbool_t svwhilewr_bf16(bfloat16_t const *, bfloat16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilerw_bf16)))
svbool_t svwhilerw(bfloat16_t const *, bfloat16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svwhilewr_bf16)))
svbool_t svwhilewr(bfloat16_t const *, bfloat16_t const *);
#endif  //defined(__ARM_FEATURE_SVE2) && defined(__ARM_FEATURE_BF16_SCALAR_ARITHMETIC)

#if defined(__ARM_FEATURE_SVE2) && defined(__ARM_FEATURE_SVE_BF16)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_bf16)))
svbfloat16_t svtbl2_bf16(svbfloat16x2_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_bf16)))
svbfloat16_t svtbx_bf16(svbfloat16_t, svbfloat16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl2_bf16)))
svbfloat16_t svtbl2(svbfloat16x2_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbx_bf16)))
svbfloat16_t svtbx(svbfloat16_t, svbfloat16_t, svuint16_t);
#endif  //defined(__ARM_FEATURE_SVE2) && defined(__ARM_FEATURE_SVE_BF16)

#if defined(__ARM_FEATURE_SVE2_AES)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaesd_u8)))
svuint8_t svaesd_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaese_u8)))
svuint8_t svaese_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaesimc_u8)))
svuint8_t svaesimc_u8(svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaesmc_u8)))
svuint8_t svaesmc_u8(svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_n_u64)))
svuint64_t svpmullb_pair_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_u64)))
svuint64_t svpmullb_pair_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_n_u64)))
svuint64_t svpmullt_pair_n_u64(svuint64_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_u64)))
svuint64_t svpmullt_pair_u64(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaesd_u8)))
svuint8_t svaesd(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaese_u8)))
svuint8_t svaese(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaesimc_u8)))
svuint8_t svaesimc(svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svaesmc_u8)))
svuint8_t svaesmc(svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_n_u64)))
svuint64_t svpmullb_pair(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullb_pair_u64)))
svuint64_t svpmullb_pair(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_n_u64)))
svuint64_t svpmullt_pair(svuint64_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svpmullt_pair_u64)))
svuint64_t svpmullt_pair(svuint64_t, svuint64_t);
#endif  //defined(__ARM_FEATURE_SVE2_AES)

#if defined(__ARM_FEATURE_SVE2_SHA3)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrax1_u64)))
svuint64_t svrax1_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrax1_s64)))
svint64_t svrax1_s64(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrax1_u64)))
svuint64_t svrax1(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrax1_s64)))
svint64_t svrax1(svint64_t, svint64_t);
#endif  //defined(__ARM_FEATURE_SVE2_SHA3)

#if defined(__ARM_FEATURE_SVE2_SM4)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsm4e_u32)))
svuint32_t svsm4e_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsm4ekey_u32)))
svuint32_t svsm4ekey_u32(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsm4e_u32)))
svuint32_t svsm4e(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsm4ekey_u32)))
svuint32_t svsm4ekey(svuint32_t, svuint32_t);
#endif  //defined(__ARM_FEATURE_SVE2_SM4)

#if defined(__ARM_FEATURE_SVE_BF16)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfdot_n_f32)))
svfloat32_t svbfdot_n_f32(svfloat32_t, svbfloat16_t, bfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfdot_f32)))
svfloat32_t svbfdot_f32(svfloat32_t, svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfdot_lane_f32)))
svfloat32_t svbfdot_lane_f32(svfloat32_t, svbfloat16_t, svbfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalb_n_f32)))
svfloat32_t svbfmlalb_n_f32(svfloat32_t, svbfloat16_t, bfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalb_f32)))
svfloat32_t svbfmlalb_f32(svfloat32_t, svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalb_lane_f32)))
svfloat32_t svbfmlalb_lane_f32(svfloat32_t, svbfloat16_t, svbfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalt_n_f32)))
svfloat32_t svbfmlalt_n_f32(svfloat32_t, svbfloat16_t, bfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalt_f32)))
svfloat32_t svbfmlalt_f32(svfloat32_t, svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalt_lane_f32)))
svfloat32_t svbfmlalt_lane_f32(svfloat32_t, svbfloat16_t, svbfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmmla_f32)))
svfloat32_t svbfmmla_f32(svfloat32_t, svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_bf16)))
bfloat16_t svclasta_n_bf16(svbool_t, bfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_bf16)))
svbfloat16_t svclasta_bf16(svbool_t, svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_bf16)))
bfloat16_t svclastb_n_bf16(svbool_t, bfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_bf16)))
svbfloat16_t svclastb_bf16(svbool_t, svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_bf16_m)))
svuint16_t svcnt_bf16_m(svuint16_t, svbool_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_bf16_x)))
svuint16_t svcnt_bf16_x(svbool_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_bf16_z)))
svuint16_t svcnt_bf16_z(svbool_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_bf16)))
svbfloat16x2_t svcreate2_bf16(svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_bf16)))
svbfloat16x3_t svcreate3_bf16(svbfloat16_t, svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_bf16)))
svbfloat16x4_t svcreate4_bf16(svbfloat16_t, svbfloat16_t, svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_bf16_f32_m)))
svbfloat16_t svcvt_bf16_f32_m(svbfloat16_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_bf16_f32_x)))
svbfloat16_t svcvt_bf16_f32_x(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_bf16_f32_z)))
svbfloat16_t svcvt_bf16_f32_z(svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtnt_bf16_f32_m)))
svbfloat16_t svcvtnt_bf16_f32_m(svbfloat16_t, svbool_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_bf16)))
svbfloat16_t svdup_n_bf16(bfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_bf16_m)))
svbfloat16_t svdup_n_bf16_m(svbfloat16_t, svbool_t, bfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_bf16_x)))
svbfloat16_t svdup_n_bf16_x(svbool_t, bfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_bf16_z)))
svbfloat16_t svdup_n_bf16_z(svbool_t, bfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_bf16)))
svbfloat16_t svdup_lane_bf16(svbfloat16_t, uint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_bf16)))
svbfloat16_t svdupq_n_bf16(bfloat16_t, bfloat16_t, bfloat16_t, bfloat16_t, bfloat16_t, bfloat16_t, bfloat16_t, bfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_bf16)))
svbfloat16_t svdupq_lane_bf16(svbfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_bf16)))
svbfloat16_t svext_bf16(svbfloat16_t, svbfloat16_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_bf16)))
svbfloat16_t svget2_bf16(svbfloat16x2_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_bf16)))
svbfloat16_t svget3_bf16(svbfloat16x3_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_bf16)))
svbfloat16_t svget4_bf16(svbfloat16x4_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_bf16)))
svbfloat16_t svinsr_n_bf16(svbfloat16_t, bfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_bf16)))
bfloat16_t svlasta_bf16(svbool_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_bf16)))
bfloat16_t svlastb_bf16(svbool_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_bf16)))
svbfloat16_t svld1_bf16(svbool_t, bfloat16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_bf16)))
svbfloat16_t svld1_vnum_bf16(svbool_t, bfloat16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_bf16)))
svbfloat16_t svld1rq_bf16(svbool_t, bfloat16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_bf16)))
svbfloat16x2_t svld2_bf16(svbool_t, bfloat16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_bf16)))
svbfloat16x2_t svld2_vnum_bf16(svbool_t, bfloat16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_bf16)))
svbfloat16x3_t svld3_bf16(svbool_t, bfloat16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_bf16)))
svbfloat16x3_t svld3_vnum_bf16(svbool_t, bfloat16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_bf16)))
svbfloat16x4_t svld4_bf16(svbool_t, bfloat16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_bf16)))
svbfloat16x4_t svld4_vnum_bf16(svbool_t, bfloat16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_bf16)))
svbfloat16_t svldff1_bf16(svbool_t, bfloat16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_bf16)))
svbfloat16_t svldff1_vnum_bf16(svbool_t, bfloat16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_bf16)))
svbfloat16_t svldnf1_bf16(svbool_t, bfloat16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_bf16)))
svbfloat16_t svldnf1_vnum_bf16(svbool_t, bfloat16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_bf16)))
svbfloat16_t svldnt1_bf16(svbool_t, bfloat16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_bf16)))
svbfloat16_t svldnt1_vnum_bf16(svbool_t, bfloat16_t const *, int64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_bf16)))
uint64_t svlen_bf16(svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_bf16)))
svbfloat16_t svrev_bf16(svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_bf16)))
svbfloat16_t svsel_bf16(svbool_t, svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_bf16)))
svbfloat16x2_t svset2_bf16(svbfloat16x2_t, uint64_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_bf16)))
svbfloat16x3_t svset3_bf16(svbfloat16x3_t, uint64_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_bf16)))
svbfloat16x4_t svset4_bf16(svbfloat16x4_t, uint64_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_bf16)))
svbfloat16_t svsplice_bf16(svbool_t, svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_bf16)))
void svst1_bf16(svbool_t, bfloat16_t *, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_bf16)))
void svst1_vnum_bf16(svbool_t, bfloat16_t *, int64_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_bf16)))
void svst2_bf16(svbool_t, bfloat16_t *, svbfloat16x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_bf16)))
void svst2_vnum_bf16(svbool_t, bfloat16_t *, int64_t, svbfloat16x2_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_bf16)))
void svst3_bf16(svbool_t, bfloat16_t *, svbfloat16x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_bf16)))
void svst3_vnum_bf16(svbool_t, bfloat16_t *, int64_t, svbfloat16x3_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_bf16)))
void svst4_bf16(svbool_t, bfloat16_t *, svbfloat16x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_bf16)))
void svst4_vnum_bf16(svbool_t, bfloat16_t *, int64_t, svbfloat16x4_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_bf16)))
void svstnt1_bf16(svbool_t, bfloat16_t *, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_bf16)))
void svstnt1_vnum_bf16(svbool_t, bfloat16_t *, int64_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_bf16)))
svbfloat16_t svtbl_bf16(svbfloat16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_bf16)))
svbfloat16_t svtrn1_bf16(svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_bf16)))
svbfloat16_t svtrn2_bf16(svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef2_bf16)))
svbfloat16x2_t svundef2_bf16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef3_bf16)))
svbfloat16x3_t svundef3_bf16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef4_bf16)))
svbfloat16x4_t svundef4_bf16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svundef_bf16)))
svbfloat16_t svundef_bf16();
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_bf16)))
svbfloat16_t svuzp1_bf16(svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_bf16)))
svbfloat16_t svuzp2_bf16(svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_bf16)))
svbfloat16_t svzip1_bf16(svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_bf16)))
svbfloat16_t svzip2_bf16(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfdot_n_f32)))
svfloat32_t svbfdot(svfloat32_t, svbfloat16_t, bfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfdot_f32)))
svfloat32_t svbfdot(svfloat32_t, svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfdot_lane_f32)))
svfloat32_t svbfdot_lane(svfloat32_t, svbfloat16_t, svbfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalb_n_f32)))
svfloat32_t svbfmlalb(svfloat32_t, svbfloat16_t, bfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalb_f32)))
svfloat32_t svbfmlalb(svfloat32_t, svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalb_lane_f32)))
svfloat32_t svbfmlalb_lane(svfloat32_t, svbfloat16_t, svbfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalt_n_f32)))
svfloat32_t svbfmlalt(svfloat32_t, svbfloat16_t, bfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalt_f32)))
svfloat32_t svbfmlalt(svfloat32_t, svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmlalt_lane_f32)))
svfloat32_t svbfmlalt_lane(svfloat32_t, svbfloat16_t, svbfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svbfmmla_f32)))
svfloat32_t svbfmmla(svfloat32_t, svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_n_bf16)))
bfloat16_t svclasta(svbool_t, bfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclasta_bf16)))
svbfloat16_t svclasta(svbool_t, svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_n_bf16)))
bfloat16_t svclastb(svbool_t, bfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svclastb_bf16)))
svbfloat16_t svclastb(svbool_t, svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_bf16_m)))
svuint16_t svcnt_m(svuint16_t, svbool_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_bf16_x)))
svuint16_t svcnt_x(svbool_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcnt_bf16_z)))
svuint16_t svcnt_z(svbool_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate2_bf16)))
svbfloat16x2_t svcreate2(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate3_bf16)))
svbfloat16x3_t svcreate3(svbfloat16_t, svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcreate4_bf16)))
svbfloat16x4_t svcreate4(svbfloat16_t, svbfloat16_t, svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_bf16_f32_m)))
svbfloat16_t svcvt_bf16_m(svbfloat16_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_bf16_f32_x)))
svbfloat16_t svcvt_bf16_x(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvt_bf16_f32_z)))
svbfloat16_t svcvt_bf16_z(svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svcvtnt_bf16_f32_m)))
svbfloat16_t svcvtnt_bf16_m(svbfloat16_t, svbool_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_bf16)))
svbfloat16_t svdup_bf16(bfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_bf16_m)))
svbfloat16_t svdup_bf16_m(svbfloat16_t, svbool_t, bfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_bf16_x)))
svbfloat16_t svdup_bf16_x(svbool_t, bfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_n_bf16_z)))
svbfloat16_t svdup_bf16_z(svbool_t, bfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_lane_bf16)))
svbfloat16_t svdup_lane(svbfloat16_t, uint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_n_bf16)))
svbfloat16_t svdupq_bf16(bfloat16_t, bfloat16_t, bfloat16_t, bfloat16_t, bfloat16_t, bfloat16_t, bfloat16_t, bfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdupq_lane_bf16)))
svbfloat16_t svdupq_lane(svbfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svext_bf16)))
svbfloat16_t svext(svbfloat16_t, svbfloat16_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget2_bf16)))
svbfloat16_t svget2(svbfloat16x2_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget3_bf16)))
svbfloat16_t svget3(svbfloat16x3_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget4_bf16)))
svbfloat16_t svget4(svbfloat16x4_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svinsr_n_bf16)))
svbfloat16_t svinsr(svbfloat16_t, bfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlasta_bf16)))
bfloat16_t svlasta(svbool_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlastb_bf16)))
bfloat16_t svlastb(svbool_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_bf16)))
svbfloat16_t svld1(svbool_t, bfloat16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1_vnum_bf16)))
svbfloat16_t svld1_vnum(svbool_t, bfloat16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1rq_bf16)))
svbfloat16_t svld1rq(svbool_t, bfloat16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_bf16)))
svbfloat16x2_t svld2(svbool_t, bfloat16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld2_vnum_bf16)))
svbfloat16x2_t svld2_vnum(svbool_t, bfloat16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_bf16)))
svbfloat16x3_t svld3(svbool_t, bfloat16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld3_vnum_bf16)))
svbfloat16x3_t svld3_vnum(svbool_t, bfloat16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_bf16)))
svbfloat16x4_t svld4(svbool_t, bfloat16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld4_vnum_bf16)))
svbfloat16x4_t svld4_vnum(svbool_t, bfloat16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_bf16)))
svbfloat16_t svldff1(svbool_t, bfloat16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldff1_vnum_bf16)))
svbfloat16_t svldff1_vnum(svbool_t, bfloat16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_bf16)))
svbfloat16_t svldnf1(svbool_t, bfloat16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnf1_vnum_bf16)))
svbfloat16_t svldnf1_vnum(svbool_t, bfloat16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_bf16)))
svbfloat16_t svldnt1(svbool_t, bfloat16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svldnt1_vnum_bf16)))
svbfloat16_t svldnt1_vnum(svbool_t, bfloat16_t const *, int64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svlen_bf16)))
uint64_t svlen(svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svrev_bf16)))
svbfloat16_t svrev(svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsel_bf16)))
svbfloat16_t svsel(svbool_t, svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset2_bf16)))
svbfloat16x2_t svset2(svbfloat16x2_t, uint64_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset3_bf16)))
svbfloat16x3_t svset3(svbfloat16x3_t, uint64_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset4_bf16)))
svbfloat16x4_t svset4(svbfloat16x4_t, uint64_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsplice_bf16)))
svbfloat16_t svsplice(svbool_t, svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_bf16)))
void svst1(svbool_t, bfloat16_t *, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst1_vnum_bf16)))
void svst1_vnum(svbool_t, bfloat16_t *, int64_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_bf16)))
void svst2(svbool_t, bfloat16_t *, svbfloat16x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst2_vnum_bf16)))
void svst2_vnum(svbool_t, bfloat16_t *, int64_t, svbfloat16x2_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_bf16)))
void svst3(svbool_t, bfloat16_t *, svbfloat16x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst3_vnum_bf16)))
void svst3_vnum(svbool_t, bfloat16_t *, int64_t, svbfloat16x3_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_bf16)))
void svst4(svbool_t, bfloat16_t *, svbfloat16x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svst4_vnum_bf16)))
void svst4_vnum(svbool_t, bfloat16_t *, int64_t, svbfloat16x4_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_bf16)))
void svstnt1(svbool_t, bfloat16_t *, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svstnt1_vnum_bf16)))
void svstnt1_vnum(svbool_t, bfloat16_t *, int64_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtbl_bf16)))
svbfloat16_t svtbl(svbfloat16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1_bf16)))
svbfloat16_t svtrn1(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2_bf16)))
svbfloat16_t svtrn2(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1_bf16)))
svbfloat16_t svuzp1(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2_bf16)))
svbfloat16_t svuzp2(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1_bf16)))
svbfloat16_t svzip1(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2_bf16)))
svbfloat16_t svzip2(svbfloat16_t, svbfloat16_t);
#endif  //defined(__ARM_FEATURE_SVE_BF16)

#if defined(__ARM_FEATURE_SVE_MATMUL_FP32)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmmla_f32)))
svfloat32_t svmmla_f32(svfloat32_t, svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmmla_f32)))
svfloat32_t svmmla(svfloat32_t, svfloat32_t, svfloat32_t);
#endif  //defined(__ARM_FEATURE_SVE_MATMUL_FP32)

#if defined(__ARM_FEATURE_SVE_MATMUL_FP64)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_u8)))
svuint8_t svld1ro_u8(svbool_t, uint8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_u32)))
svuint32_t svld1ro_u32(svbool_t, uint32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_u64)))
svuint64_t svld1ro_u64(svbool_t, uint64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_u16)))
svuint16_t svld1ro_u16(svbool_t, uint16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_s8)))
svint8_t svld1ro_s8(svbool_t, int8_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_f64)))
svfloat64_t svld1ro_f64(svbool_t, float64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_f32)))
svfloat32_t svld1ro_f32(svbool_t, float32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_f16)))
svfloat16_t svld1ro_f16(svbool_t, float16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_s32)))
svint32_t svld1ro_s32(svbool_t, int32_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_s64)))
svint64_t svld1ro_s64(svbool_t, int64_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_s16)))
svint16_t svld1ro_s16(svbool_t, int16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmmla_f64)))
svfloat64_t svmmla_f64(svfloat64_t, svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_u8)))
svuint8_t svtrn1q_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_u32)))
svuint32_t svtrn1q_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_u64)))
svuint64_t svtrn1q_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_u16)))
svuint16_t svtrn1q_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_s8)))
svint8_t svtrn1q_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_f64)))
svfloat64_t svtrn1q_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_f32)))
svfloat32_t svtrn1q_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_f16)))
svfloat16_t svtrn1q_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_s32)))
svint32_t svtrn1q_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_s64)))
svint64_t svtrn1q_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_s16)))
svint16_t svtrn1q_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_u8)))
svuint8_t svtrn2q_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_u32)))
svuint32_t svtrn2q_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_u64)))
svuint64_t svtrn2q_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_u16)))
svuint16_t svtrn2q_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_s8)))
svint8_t svtrn2q_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_f64)))
svfloat64_t svtrn2q_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_f32)))
svfloat32_t svtrn2q_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_f16)))
svfloat16_t svtrn2q_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_s32)))
svint32_t svtrn2q_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_s64)))
svint64_t svtrn2q_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_s16)))
svint16_t svtrn2q_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_u8)))
svuint8_t svuzp1q_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_u32)))
svuint32_t svuzp1q_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_u64)))
svuint64_t svuzp1q_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_u16)))
svuint16_t svuzp1q_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_s8)))
svint8_t svuzp1q_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_f64)))
svfloat64_t svuzp1q_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_f32)))
svfloat32_t svuzp1q_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_f16)))
svfloat16_t svuzp1q_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_s32)))
svint32_t svuzp1q_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_s64)))
svint64_t svuzp1q_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_s16)))
svint16_t svuzp1q_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_u8)))
svuint8_t svuzp2q_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_u32)))
svuint32_t svuzp2q_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_u64)))
svuint64_t svuzp2q_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_u16)))
svuint16_t svuzp2q_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_s8)))
svint8_t svuzp2q_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_f64)))
svfloat64_t svuzp2q_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_f32)))
svfloat32_t svuzp2q_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_f16)))
svfloat16_t svuzp2q_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_s32)))
svint32_t svuzp2q_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_s64)))
svint64_t svuzp2q_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_s16)))
svint16_t svuzp2q_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_u8)))
svuint8_t svzip1q_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_u32)))
svuint32_t svzip1q_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_u64)))
svuint64_t svzip1q_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_u16)))
svuint16_t svzip1q_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_s8)))
svint8_t svzip1q_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_f64)))
svfloat64_t svzip1q_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_f32)))
svfloat32_t svzip1q_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_f16)))
svfloat16_t svzip1q_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_s32)))
svint32_t svzip1q_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_s64)))
svint64_t svzip1q_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_s16)))
svint16_t svzip1q_s16(svint16_t, svint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_u8)))
svuint8_t svzip2q_u8(svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_u32)))
svuint32_t svzip2q_u32(svuint32_t, svuint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_u64)))
svuint64_t svzip2q_u64(svuint64_t, svuint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_u16)))
svuint16_t svzip2q_u16(svuint16_t, svuint16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_s8)))
svint8_t svzip2q_s8(svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_f64)))
svfloat64_t svzip2q_f64(svfloat64_t, svfloat64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_f32)))
svfloat32_t svzip2q_f32(svfloat32_t, svfloat32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_f16)))
svfloat16_t svzip2q_f16(svfloat16_t, svfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_s32)))
svint32_t svzip2q_s32(svint32_t, svint32_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_s64)))
svint64_t svzip2q_s64(svint64_t, svint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_s16)))
svint16_t svzip2q_s16(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_u8)))
svuint8_t svld1ro(svbool_t, uint8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_u32)))
svuint32_t svld1ro(svbool_t, uint32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_u64)))
svuint64_t svld1ro(svbool_t, uint64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_u16)))
svuint16_t svld1ro(svbool_t, uint16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_s8)))
svint8_t svld1ro(svbool_t, int8_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_f64)))
svfloat64_t svld1ro(svbool_t, float64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_f32)))
svfloat32_t svld1ro(svbool_t, float32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_f16)))
svfloat16_t svld1ro(svbool_t, float16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_s32)))
svint32_t svld1ro(svbool_t, int32_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_s64)))
svint64_t svld1ro(svbool_t, int64_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_s16)))
svint16_t svld1ro(svbool_t, int16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmmla_f64)))
svfloat64_t svmmla(svfloat64_t, svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_u8)))
svuint8_t svtrn1q(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_u32)))
svuint32_t svtrn1q(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_u64)))
svuint64_t svtrn1q(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_u16)))
svuint16_t svtrn1q(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_s8)))
svint8_t svtrn1q(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_f64)))
svfloat64_t svtrn1q(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_f32)))
svfloat32_t svtrn1q(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_f16)))
svfloat16_t svtrn1q(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_s32)))
svint32_t svtrn1q(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_s64)))
svint64_t svtrn1q(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_s16)))
svint16_t svtrn1q(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_u8)))
svuint8_t svtrn2q(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_u32)))
svuint32_t svtrn2q(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_u64)))
svuint64_t svtrn2q(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_u16)))
svuint16_t svtrn2q(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_s8)))
svint8_t svtrn2q(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_f64)))
svfloat64_t svtrn2q(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_f32)))
svfloat32_t svtrn2q(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_f16)))
svfloat16_t svtrn2q(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_s32)))
svint32_t svtrn2q(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_s64)))
svint64_t svtrn2q(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_s16)))
svint16_t svtrn2q(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_u8)))
svuint8_t svuzp1q(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_u32)))
svuint32_t svuzp1q(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_u64)))
svuint64_t svuzp1q(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_u16)))
svuint16_t svuzp1q(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_s8)))
svint8_t svuzp1q(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_f64)))
svfloat64_t svuzp1q(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_f32)))
svfloat32_t svuzp1q(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_f16)))
svfloat16_t svuzp1q(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_s32)))
svint32_t svuzp1q(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_s64)))
svint64_t svuzp1q(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_s16)))
svint16_t svuzp1q(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_u8)))
svuint8_t svuzp2q(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_u32)))
svuint32_t svuzp2q(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_u64)))
svuint64_t svuzp2q(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_u16)))
svuint16_t svuzp2q(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_s8)))
svint8_t svuzp2q(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_f64)))
svfloat64_t svuzp2q(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_f32)))
svfloat32_t svuzp2q(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_f16)))
svfloat16_t svuzp2q(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_s32)))
svint32_t svuzp2q(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_s64)))
svint64_t svuzp2q(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_s16)))
svint16_t svuzp2q(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_u8)))
svuint8_t svzip1q(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_u32)))
svuint32_t svzip1q(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_u64)))
svuint64_t svzip1q(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_u16)))
svuint16_t svzip1q(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_s8)))
svint8_t svzip1q(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_f64)))
svfloat64_t svzip1q(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_f32)))
svfloat32_t svzip1q(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_f16)))
svfloat16_t svzip1q(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_s32)))
svint32_t svzip1q(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_s64)))
svint64_t svzip1q(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_s16)))
svint16_t svzip1q(svint16_t, svint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_u8)))
svuint8_t svzip2q(svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_u32)))
svuint32_t svzip2q(svuint32_t, svuint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_u64)))
svuint64_t svzip2q(svuint64_t, svuint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_u16)))
svuint16_t svzip2q(svuint16_t, svuint16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_s8)))
svint8_t svzip2q(svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_f64)))
svfloat64_t svzip2q(svfloat64_t, svfloat64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_f32)))
svfloat32_t svzip2q(svfloat32_t, svfloat32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_f16)))
svfloat16_t svzip2q(svfloat16_t, svfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_s32)))
svint32_t svzip2q(svint32_t, svint32_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_s64)))
svint64_t svzip2q(svint64_t, svint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_s16)))
svint16_t svzip2q(svint16_t, svint16_t);
#endif  //defined(__ARM_FEATURE_SVE_MATMUL_FP64)

#if defined(__ARM_FEATURE_SVE_MATMUL_FP64) && defined(__ARM_FEATURE_SVE_BF16)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_bf16)))
svbfloat16_t svld1ro_bf16(svbool_t, bfloat16_t const *);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_bf16)))
svbfloat16_t svtrn1q_bf16(svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_bf16)))
svbfloat16_t svtrn2q_bf16(svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_bf16)))
svbfloat16_t svuzp1q_bf16(svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_bf16)))
svbfloat16_t svuzp2q_bf16(svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_bf16)))
svbfloat16_t svzip1q_bf16(svbfloat16_t, svbfloat16_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_bf16)))
svbfloat16_t svzip2q_bf16(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svld1ro_bf16)))
svbfloat16_t svld1ro(svbool_t, bfloat16_t const *);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn1q_bf16)))
svbfloat16_t svtrn1q(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svtrn2q_bf16)))
svbfloat16_t svtrn2q(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp1q_bf16)))
svbfloat16_t svuzp1q(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svuzp2q_bf16)))
svbfloat16_t svuzp2q(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip1q_bf16)))
svbfloat16_t svzip1q(svbfloat16_t, svbfloat16_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svzip2q_bf16)))
svbfloat16_t svzip2q(svbfloat16_t, svbfloat16_t);
#endif  //defined(__ARM_FEATURE_SVE_MATMUL_FP64) && defined(__ARM_FEATURE_SVE_BF16)

#if defined(__ARM_FEATURE_SVE_MATMUL_INT8)
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmmla_s32)))
svint32_t svmmla_s32(svint32_t, svint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmmla_u32)))
svuint32_t svmmla_u32(svuint32_t, svuint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsudot_n_s32)))
svint32_t svsudot_n_s32(svint32_t, svint8_t, uint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsudot_s32)))
svint32_t svsudot_s32(svint32_t, svint8_t, svuint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsudot_lane_s32)))
svint32_t svsudot_lane_s32(svint32_t, svint8_t, svuint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svusdot_n_s32)))
svint32_t svusdot_n_s32(svint32_t, svuint8_t, int8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svusdot_s32)))
svint32_t svusdot_s32(svint32_t, svuint8_t, svint8_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svusdot_lane_s32)))
svint32_t svusdot_lane_s32(svint32_t, svuint8_t, svint8_t, uint64_t);
__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svusmmla_s32)))
svint32_t svusmmla_s32(svint32_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmmla_s32)))
svint32_t svmmla(svint32_t, svint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svmmla_u32)))
svuint32_t svmmla(svuint32_t, svuint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsudot_n_s32)))
svint32_t svsudot(svint32_t, svint8_t, uint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsudot_s32)))
svint32_t svsudot(svint32_t, svint8_t, svuint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svsudot_lane_s32)))
svint32_t svsudot_lane(svint32_t, svint8_t, svuint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svusdot_n_s32)))
svint32_t svusdot(svint32_t, svuint8_t, int8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svusdot_s32)))
svint32_t svusdot(svint32_t, svuint8_t, svint8_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svusdot_lane_s32)))
svint32_t svusdot_lane(svint32_t, svuint8_t, svint8_t, uint64_t);
__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svusmmla_s32)))
svint32_t svusmmla(svint32_t, svuint8_t, svint8_t);
#endif  //defined(__ARM_FEATURE_SVE_MATMUL_INT8)
#if defined(__ARM_FEATURE_SVE_BF16)
#define svcvtnt_bf16_x      svcvtnt_bf16_m
#define svcvtnt_bf16_f32_x  svcvtnt_bf16_f32_m
#endif /*__ARM_FEATURE_SVE_BF16 */

#if defined(__ARM_FEATURE_SVE2)
#define svcvtnt_f16_x      svcvtnt_f16_m
#define svcvtnt_f16_f32_x  svcvtnt_f16_f32_m
#define svcvtnt_f32_x      svcvtnt_f32_m
#define svcvtnt_f32_f64_x  svcvtnt_f32_f64_m

#define svcvtxnt_f32_x     svcvtxnt_f32_m
#define svcvtxnt_f32_f64_x svcvtxnt_f32_f64_m

#endif /*__ARM_FEATURE_SVE2 */

#ifdef __cplusplus
} // extern "C"
#endif

#endif /*__ARM_FEATURE_SVE */

#endif /* __ARM_SVE_H */
