]>
Commit | Line | Data |
---|---|---|
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 | ||
36 | DEF_SVE_MODE (n, none, none, none) | |
37 | DEF_SVE_MODE (index, none, none, elements) | |
38 | DEF_SVE_MODE (offset, none, none, bytes) | |
39 | DEF_SVE_MODE (s32index, none, svint32_t, elements) | |
40 | DEF_SVE_MODE (s32offset, none, svint32_t, bytes) | |
41 | DEF_SVE_MODE (s64index, none, svint64_t, elements) | |
42 | DEF_SVE_MODE (s64offset, none, svint64_t, bytes) | |
43 | DEF_SVE_MODE (u32base, svuint32_t, none, none) | |
44 | DEF_SVE_MODE (u32base_index, svuint32_t, none, elements) | |
45 | DEF_SVE_MODE (u32base_offset, svuint32_t, none, bytes) | |
46 | DEF_SVE_MODE (u32base_s32index, svuint32_t, svint32_t, elements) | |
47 | DEF_SVE_MODE (u32base_s32offset, svuint32_t, svint32_t, bytes) | |
48 | DEF_SVE_MODE (u32base_u32index, svuint32_t, svuint32_t, elements) | |
49 | DEF_SVE_MODE (u32base_u32offset, svuint32_t, svuint32_t, bytes) | |
50 | DEF_SVE_MODE (u32index, none, svuint32_t, elements) | |
51 | DEF_SVE_MODE (u32offset, none, svuint32_t, bytes) | |
52 | DEF_SVE_MODE (u64base, svuint64_t, none, none) | |
53 | DEF_SVE_MODE (u64base_index, svuint64_t, none, elements) | |
54 | DEF_SVE_MODE (u64base_offset, svuint64_t, none, bytes) | |
55 | DEF_SVE_MODE (u64base_s64index, svuint64_t, svint64_t, elements) | |
56 | DEF_SVE_MODE (u64base_s64offset, svuint64_t, svint64_t, bytes) | |
57 | DEF_SVE_MODE (u64base_u64index, svuint64_t, svuint64_t, elements) | |
58 | DEF_SVE_MODE (u64base_u64offset, svuint64_t, svuint64_t, bytes) | |
59 | DEF_SVE_MODE (u64index, none, svuint64_t, elements) | |
60 | DEF_SVE_MODE (u64offset, none, svuint64_t, bytes) | |
61 | DEF_SVE_MODE (vnum, none, none, vectors) | |
62 | ||
63 | DEF_SVE_TYPE (svbool_t, 10, __SVBool_t, boolean_type_node) | |
02fcd8ac | 64 | DEF_SVE_TYPE (svbfloat16_t, 14, __SVBfloat16_t, aarch64_bf16_type_node) |
624d0f07 RS |
65 | DEF_SVE_TYPE (svfloat16_t, 13, __SVFloat16_t, aarch64_fp16_type_node) |
66 | DEF_SVE_TYPE (svfloat32_t, 13, __SVFloat32_t, float_type_node) | |
67 | DEF_SVE_TYPE (svfloat64_t, 13, __SVFloat64_t, double_type_node) | |
63492372 RS |
68 | DEF_SVE_TYPE (svint8_t, 10, __SVInt8_t, get_typenode_from_name (INT8_TYPE)) |
69 | DEF_SVE_TYPE (svint16_t, 11, __SVInt16_t, get_typenode_from_name (INT16_TYPE)) | |
70 | DEF_SVE_TYPE (svint32_t, 11, __SVInt32_t, get_typenode_from_name (INT32_TYPE)) | |
71 | DEF_SVE_TYPE (svint64_t, 11, __SVInt64_t, get_typenode_from_name (INT64_TYPE)) | |
72 | DEF_SVE_TYPE (svuint8_t, 11, __SVUint8_t, get_typenode_from_name (UINT8_TYPE)) | |
73 | DEF_SVE_TYPE (svuint16_t, 12, __SVUint16_t, | |
74 | get_typenode_from_name (UINT16_TYPE)) | |
75 | DEF_SVE_TYPE (svuint32_t, 12, __SVUint32_t, | |
76 | get_typenode_from_name (UINT32_TYPE)) | |
77 | DEF_SVE_TYPE (svuint64_t, 12, __SVUint64_t, | |
78 | get_typenode_from_name (UINT64_TYPE)) | |
624d0f07 RS |
79 | |
80 | DEF_SVE_TYPE_SUFFIX (b, svbool_t, bool, 8, VNx16BImode) | |
81 | DEF_SVE_TYPE_SUFFIX (b8, svbool_t, bool, 8, VNx16BImode) | |
82 | DEF_SVE_TYPE_SUFFIX (b16, svbool_t, bool, 16, VNx8BImode) | |
83 | DEF_SVE_TYPE_SUFFIX (b32, svbool_t, bool, 32, VNx4BImode) | |
84 | DEF_SVE_TYPE_SUFFIX (b64, svbool_t, bool, 64, VNx2BImode) | |
02fcd8ac | 85 | DEF_SVE_TYPE_SUFFIX (bf16, svbfloat16_t, bfloat, 16, VNx8BFmode) |
624d0f07 RS |
86 | DEF_SVE_TYPE_SUFFIX (f16, svfloat16_t, float, 16, VNx8HFmode) |
87 | DEF_SVE_TYPE_SUFFIX (f32, svfloat32_t, float, 32, VNx4SFmode) | |
88 | DEF_SVE_TYPE_SUFFIX (f64, svfloat64_t, float, 64, VNx2DFmode) | |
89 | DEF_SVE_TYPE_SUFFIX (s8, svint8_t, signed, 8, VNx16QImode) | |
90 | DEF_SVE_TYPE_SUFFIX (s16, svint16_t, signed, 16, VNx8HImode) | |
91 | DEF_SVE_TYPE_SUFFIX (s32, svint32_t, signed, 32, VNx4SImode) | |
92 | DEF_SVE_TYPE_SUFFIX (s64, svint64_t, signed, 64, VNx2DImode) | |
93 | DEF_SVE_TYPE_SUFFIX (u8, svuint8_t, unsigned, 8, VNx16QImode) | |
94 | DEF_SVE_TYPE_SUFFIX (u16, svuint16_t, unsigned, 16, VNx8HImode) | |
95 | DEF_SVE_TYPE_SUFFIX (u32, svuint32_t, unsigned, 32, VNx4SImode) | |
96 | DEF_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 |