]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/aarch64/aarch64-sve-builtins.def
Update copyright years.
[thirdparty/gcc.git] / gcc / config / aarch64 / aarch64-sve-builtins.def
CommitLineData
624d0f07 1/* Builtin lists for AArch64 SVE
99dee823 2 Copyright (C) 2018-2021 Free Software Foundation, Inc.
624d0f07
RS
3
4 This file is part of GCC.
5
6 GCC is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
9 any later version.
10
11 GCC is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING3. If not see
18 <http://www.gnu.org/licenses/>. */
19
20#ifndef DEF_SVE_MODE
21#define DEF_SVE_MODE(A, B, C, D)
22#endif
23
24#ifndef DEF_SVE_TYPE
25#define DEF_SVE_TYPE(A, B, C, D)
26#endif
27
28#ifndef DEF_SVE_TYPE_SUFFIX
29#define DEF_SVE_TYPE_SUFFIX(A, B, C, D, E)
30#endif
31
32#ifndef DEF_SVE_FUNCTION
33#define DEF_SVE_FUNCTION(A, B, C, D)
34#endif
35
36DEF_SVE_MODE (n, none, none, none)
37DEF_SVE_MODE (index, none, none, elements)
38DEF_SVE_MODE (offset, none, none, bytes)
39DEF_SVE_MODE (s32index, none, svint32_t, elements)
40DEF_SVE_MODE (s32offset, none, svint32_t, bytes)
41DEF_SVE_MODE (s64index, none, svint64_t, elements)
42DEF_SVE_MODE (s64offset, none, svint64_t, bytes)
43DEF_SVE_MODE (u32base, svuint32_t, none, none)
44DEF_SVE_MODE (u32base_index, svuint32_t, none, elements)
45DEF_SVE_MODE (u32base_offset, svuint32_t, none, bytes)
46DEF_SVE_MODE (u32base_s32index, svuint32_t, svint32_t, elements)
47DEF_SVE_MODE (u32base_s32offset, svuint32_t, svint32_t, bytes)
48DEF_SVE_MODE (u32base_u32index, svuint32_t, svuint32_t, elements)
49DEF_SVE_MODE (u32base_u32offset, svuint32_t, svuint32_t, bytes)
50DEF_SVE_MODE (u32index, none, svuint32_t, elements)
51DEF_SVE_MODE (u32offset, none, svuint32_t, bytes)
52DEF_SVE_MODE (u64base, svuint64_t, none, none)
53DEF_SVE_MODE (u64base_index, svuint64_t, none, elements)
54DEF_SVE_MODE (u64base_offset, svuint64_t, none, bytes)
55DEF_SVE_MODE (u64base_s64index, svuint64_t, svint64_t, elements)
56DEF_SVE_MODE (u64base_s64offset, svuint64_t, svint64_t, bytes)
57DEF_SVE_MODE (u64base_u64index, svuint64_t, svuint64_t, elements)
58DEF_SVE_MODE (u64base_u64offset, svuint64_t, svuint64_t, bytes)
59DEF_SVE_MODE (u64index, none, svuint64_t, elements)
60DEF_SVE_MODE (u64offset, none, svuint64_t, bytes)
61DEF_SVE_MODE (vnum, none, none, vectors)
62
63DEF_SVE_TYPE (svbool_t, 10, __SVBool_t, boolean_type_node)
02fcd8ac 64DEF_SVE_TYPE (svbfloat16_t, 14, __SVBfloat16_t, aarch64_bf16_type_node)
624d0f07
RS
65DEF_SVE_TYPE (svfloat16_t, 13, __SVFloat16_t, aarch64_fp16_type_node)
66DEF_SVE_TYPE (svfloat32_t, 13, __SVFloat32_t, float_type_node)
67DEF_SVE_TYPE (svfloat64_t, 13, __SVFloat64_t, double_type_node)
63492372
RS
68DEF_SVE_TYPE (svint8_t, 10, __SVInt8_t, get_typenode_from_name (INT8_TYPE))
69DEF_SVE_TYPE (svint16_t, 11, __SVInt16_t, get_typenode_from_name (INT16_TYPE))
70DEF_SVE_TYPE (svint32_t, 11, __SVInt32_t, get_typenode_from_name (INT32_TYPE))
71DEF_SVE_TYPE (svint64_t, 11, __SVInt64_t, get_typenode_from_name (INT64_TYPE))
72DEF_SVE_TYPE (svuint8_t, 11, __SVUint8_t, get_typenode_from_name (UINT8_TYPE))
73DEF_SVE_TYPE (svuint16_t, 12, __SVUint16_t,
74 get_typenode_from_name (UINT16_TYPE))
75DEF_SVE_TYPE (svuint32_t, 12, __SVUint32_t,
76 get_typenode_from_name (UINT32_TYPE))
77DEF_SVE_TYPE (svuint64_t, 12, __SVUint64_t,
78 get_typenode_from_name (UINT64_TYPE))
624d0f07
RS
79
80DEF_SVE_TYPE_SUFFIX (b, svbool_t, bool, 8, VNx16BImode)
81DEF_SVE_TYPE_SUFFIX (b8, svbool_t, bool, 8, VNx16BImode)
82DEF_SVE_TYPE_SUFFIX (b16, svbool_t, bool, 16, VNx8BImode)
83DEF_SVE_TYPE_SUFFIX (b32, svbool_t, bool, 32, VNx4BImode)
84DEF_SVE_TYPE_SUFFIX (b64, svbool_t, bool, 64, VNx2BImode)
02fcd8ac 85DEF_SVE_TYPE_SUFFIX (bf16, svbfloat16_t, bfloat, 16, VNx8BFmode)
624d0f07
RS
86DEF_SVE_TYPE_SUFFIX (f16, svfloat16_t, float, 16, VNx8HFmode)
87DEF_SVE_TYPE_SUFFIX (f32, svfloat32_t, float, 32, VNx4SFmode)
88DEF_SVE_TYPE_SUFFIX (f64, svfloat64_t, float, 64, VNx2DFmode)
89DEF_SVE_TYPE_SUFFIX (s8, svint8_t, signed, 8, VNx16QImode)
90DEF_SVE_TYPE_SUFFIX (s16, svint16_t, signed, 16, VNx8HImode)
91DEF_SVE_TYPE_SUFFIX (s32, svint32_t, signed, 32, VNx4SImode)
92DEF_SVE_TYPE_SUFFIX (s64, svint64_t, signed, 64, VNx2DImode)
93DEF_SVE_TYPE_SUFFIX (u8, svuint8_t, unsigned, 8, VNx16QImode)
94DEF_SVE_TYPE_SUFFIX (u16, svuint16_t, unsigned, 16, VNx8HImode)
95DEF_SVE_TYPE_SUFFIX (u32, svuint32_t, unsigned, 32, VNx4SImode)
96DEF_SVE_TYPE_SUFFIX (u64, svuint64_t, unsigned, 64, VNx2DImode)
97
98#include "aarch64-sve-builtins-base.def"
0a09a948 99#include "aarch64-sve-builtins-sve2.def"
624d0f07
RS
100
101#undef DEF_SVE_FUNCTION
102#undef DEF_SVE_TYPE_SUFFIX
103#undef DEF_SVE_TYPE
104#undef DEF_SVE_MODE