annotate gcc/config/aarch64/aarch64-sve-builtins.def @ 145:1830386684a0

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