Path: blob/main/contrib/llvm-project/clang/lib/Headers/arm_neon_sve_bridge.h
35233 views
/*===---- arm_neon_sve_bridge.h - ARM NEON SVE Bridge intrinsics -----------===1*2*3* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4* See https://llvm.org/LICENSE.txt for license information.5* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6*7*===-----------------------------------------------------------------------===8*/910#ifndef __ARM_NEON_SVE_BRIDGE_H11#define __ARM_NEON_SVE_BRIDGE_H1213#include <arm_neon.h>14#include <arm_sve.h>1516#ifdef __cplusplus17extern "C" {18#endif1920/* Function attributes */21#define __ai static __inline__ __attribute__((__always_inline__, __nodebug__))22#define __aio \23static __inline__ \24__attribute__((__always_inline__, __nodebug__, __overloadable__))2526__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_s8)))27svint8_t svset_neonq(svint8_t, int8x16_t);28__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_s16)))29svint16_t svset_neonq(svint16_t, int16x8_t);30__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_s32)))31svint32_t svset_neonq(svint32_t, int32x4_t);32__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_s64)))33svint64_t svset_neonq(svint64_t, int64x2_t);34__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_u8)))35svuint8_t svset_neonq(svuint8_t, uint8x16_t);36__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_u16)))37svuint16_t svset_neonq(svuint16_t, uint16x8_t);38__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_u32)))39svuint32_t svset_neonq(svuint32_t, uint32x4_t);40__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_u64)))41svuint64_t svset_neonq(svuint64_t, uint64x2_t);42__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_f16)))43svfloat16_t svset_neonq(svfloat16_t, float16x8_t);44__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_f32)))45svfloat32_t svset_neonq(svfloat32_t, float32x4_t);46__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_f64)))47svfloat64_t svset_neonq(svfloat64_t, float64x2_t);48__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_s8)))49svint8_t svset_neonq_s8(svint8_t, int8x16_t);50__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_s16)))51svint16_t svset_neonq_s16(svint16_t, int16x8_t);52__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_s32)))53svint32_t svset_neonq_s32(svint32_t, int32x4_t);54__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_s64)))55svint64_t svset_neonq_s64(svint64_t, int64x2_t);56__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_u8)))57svuint8_t svset_neonq_u8(svuint8_t, uint8x16_t);58__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_u16)))59svuint16_t svset_neonq_u16(svuint16_t, uint16x8_t);60__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_u32)))61svuint32_t svset_neonq_u32(svuint32_t, uint32x4_t);62__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_u64)))63svuint64_t svset_neonq_u64(svuint64_t, uint64x2_t);64__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_f16)))65svfloat16_t svset_neonq_f16(svfloat16_t, float16x8_t);66__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_f32)))67svfloat32_t svset_neonq_f32(svfloat32_t, float32x4_t);68__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_f64)))69svfloat64_t svset_neonq_f64(svfloat64_t, float64x2_t);7071__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_s8)))72int8x16_t svget_neonq(svint8_t);73__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_s16)))74int16x8_t svget_neonq(svint16_t);75__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_s32)))76int32x4_t svget_neonq(svint32_t);77__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_s64)))78int64x2_t svget_neonq(svint64_t);79__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_u8)))80uint8x16_t svget_neonq(svuint8_t);81__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_u16)))82uint16x8_t svget_neonq(svuint16_t);83__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_u32)))84uint32x4_t svget_neonq(svuint32_t);85__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_u64)))86uint64x2_t svget_neonq(svuint64_t);87__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_f16)))88float16x8_t svget_neonq(svfloat16_t);89__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_f32)))90float32x4_t svget_neonq(svfloat32_t);91__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_f64)))92float64x2_t svget_neonq(svfloat64_t);93__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_s8)))94int8x16_t svget_neonq_s8(svint8_t);95__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_s16)))96int16x8_t svget_neonq_s16(svint16_t);97__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_s32)))98int32x4_t svget_neonq_s32(svint32_t);99__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_s64)))100int64x2_t svget_neonq_s64(svint64_t);101__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_u8)))102uint8x16_t svget_neonq_u8(svuint8_t);103__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_u16)))104uint16x8_t svget_neonq_u16(svuint16_t);105__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_u32)))106uint32x4_t svget_neonq_u32(svuint32_t);107__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_u64)))108uint64x2_t svget_neonq_u64(svuint64_t);109__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_f16)))110float16x8_t svget_neonq_f16(svfloat16_t);111__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_f32)))112float32x4_t svget_neonq_f32(svfloat32_t);113__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_f64)))114float64x2_t svget_neonq_f64(svfloat64_t);115116__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_s8)))117svint8_t svdup_neonq(int8x16_t);118__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_s16)))119svint16_t svdup_neonq(int16x8_t);120__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_s32)))121svint32_t svdup_neonq(int32x4_t);122__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_s64)))123svint64_t svdup_neonq(int64x2_t);124__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_u8)))125svuint8_t svdup_neonq(uint8x16_t);126__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_u16)))127svuint16_t svdup_neonq(uint16x8_t);128__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_u32)))129svuint32_t svdup_neonq(uint32x4_t);130__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_u64)))131svuint64_t svdup_neonq(uint64x2_t);132__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_f16)))133svfloat16_t svdup_neonq(float16x8_t);134__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_f32)))135svfloat32_t svdup_neonq(float32x4_t);136__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_f64)))137svfloat64_t svdup_neonq(float64x2_t);138__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_s8)))139svint8_t svdup_neonq_s8(int8x16_t);140__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_s16)))141svint16_t svdup_neonq_s16(int16x8_t);142__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_s32)))143svint32_t svdup_neonq_s32(int32x4_t);144__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_s64)))145svint64_t svdup_neonq_s64(int64x2_t);146__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_u8)))147svuint8_t svdup_neonq_u8(uint8x16_t);148__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_u16)))149svuint16_t svdup_neonq_u16(uint16x8_t);150__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_u32)))151svuint32_t svdup_neonq_u32(uint32x4_t);152__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_u64)))153svuint64_t svdup_neonq_u64(uint64x2_t);154__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_f16)))155svfloat16_t svdup_neonq_f16(float16x8_t);156__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_f32)))157svfloat32_t svdup_neonq_f32(float32x4_t);158__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_f64)))159svfloat64_t svdup_neonq_f64(float64x2_t);160161__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_bf16)))162svbfloat16_t svset_neonq(svbfloat16_t, bfloat16x8_t);163__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svset_neonq_bf16)))164svbfloat16_t svset_neonq_bf16(svbfloat16_t, bfloat16x8_t);165__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_bf16)))166bfloat16x8_t svget_neonq(svbfloat16_t);167__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svget_neonq_bf16)))168bfloat16x8_t svget_neonq_bf16(svbfloat16_t);169__aio __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_bf16)))170svbfloat16_t svdup_neonq(bfloat16x8_t);171__ai __attribute__((__clang_arm_builtin_alias(__builtin_sve_svdup_neonq_bf16)))172svbfloat16_t svdup_neonq_bf16(bfloat16x8_t);173174#undef __ai175#undef __aio176177#ifdef __cplusplus178} // extern "C"179#endif180181#endif //__ARM_NEON_SVE_BRIDGE_H182183184