summaryrefslogtreecommitdiff
path: root/include/clang/Basic/BuiltinsARM.def
blob: 247cf7f5abfeee0d190884f4a2f6f86ddb29f8d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
//===--- BuiltinsARM.def - ARM Builtin function database ----*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file defines the ARM-specific builtin function database.  Users of
// this file must define the BUILTIN macro to make use of this information.
//
//===----------------------------------------------------------------------===//

// The format of this database matches clang/Basic/Builtins.def.

// In libgcc
BUILTIN(__clear_cache, "vc*c*", "")
BUILTIN(__builtin_thread_pointer, "v*", "")

// NEON
BUILTIN(__builtin_neon_vaba_v, "V8cV8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vabaq_v, "V16cV16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vabal_v, "V16cV16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vabd_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vabdq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vabdl_v, "V16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vabs_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vabsq_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vaddhn_v, "V8cV16cV16ci", "n")
BUILTIN(__builtin_neon_vaddl_v, "V16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vaddw_v, "V16cV16cV8ci", "n")
BUILTIN(__builtin_neon_vbsl_v, "V8cV8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vbslq_v, "V16cV16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vcage_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vcageq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vcagt_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vcagtq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vcale_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vcaleq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vcalt_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vcaltq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vcls_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vclsq_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vclz_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vclzq_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vcnt_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vcntq_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vcvt_f16_v, "V8cV16ci", "n")
BUILTIN(__builtin_neon_vcvt_f32_v, "V2fV8ci", "n")
BUILTIN(__builtin_neon_vcvtq_f32_v, "V4fV16ci", "n")
BUILTIN(__builtin_neon_vcvt_f32_f16, "V16cV8ci", "n")
BUILTIN(__builtin_neon_vcvt_n_f32_v, "V2fV8cii", "n")
BUILTIN(__builtin_neon_vcvtq_n_f32_v, "V4fV16cii", "n")
BUILTIN(__builtin_neon_vcvt_n_s32_v, "V8cV8cii", "n")
BUILTIN(__builtin_neon_vcvtq_n_s32_v, "V16cV16cii", "n")
BUILTIN(__builtin_neon_vcvt_n_u32_v, "V8cV8cii", "n")
BUILTIN(__builtin_neon_vcvtq_n_u32_v, "V16cV16cii", "n")
BUILTIN(__builtin_neon_vcvt_s32_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vcvtq_s32_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vcvt_u32_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vcvtq_u32_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vext_v, "V8cV8cV8cii", "n")
BUILTIN(__builtin_neon_vextq_v, "V16cV16cV16cii", "n")
BUILTIN(__builtin_neon_vget_lane_i8, "UcV8ci", "n")
BUILTIN(__builtin_neon_vget_lane_i16, "UsV4si", "n")
BUILTIN(__builtin_neon_vget_lane_i32, "UiV2ii", "n")
BUILTIN(__builtin_neon_vget_lane_f32, "fV2fi", "n")
BUILTIN(__builtin_neon_vgetq_lane_i8, "UcV16ci", "n")
BUILTIN(__builtin_neon_vgetq_lane_i16, "UsV8si", "n")
BUILTIN(__builtin_neon_vgetq_lane_i32, "UiV4ii", "n")
BUILTIN(__builtin_neon_vgetq_lane_f32, "fV4fi", "n")
BUILTIN(__builtin_neon_vget_lane_i64, "ULLiV1LLii", "n")
BUILTIN(__builtin_neon_vgetq_lane_i64, "ULLiV2LLii", "n")
BUILTIN(__builtin_neon_vhadd_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vhaddq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vhsub_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vhsubq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vld1q_v, "V16cvC*i", "n")
BUILTIN(__builtin_neon_vld1_v, "V8cvC*i", "n")
BUILTIN(__builtin_neon_vld1q_dup_v, "V16cvC*i", "n")
BUILTIN(__builtin_neon_vld1_dup_v, "V8cvC*i", "n")
BUILTIN(__builtin_neon_vld1q_lane_v, "V16cvC*ii", "n")
BUILTIN(__builtin_neon_vld1_lane_v, "V8cvC*ii", "n")
BUILTIN(__builtin_neon_vld2q_v, "V32cvC*i", "n")
BUILTIN(__builtin_neon_vld2_v, "V16cvC*i", "n")
BUILTIN(__builtin_neon_vld2_dup_v, "V16cvC*i", "n")
BUILTIN(__builtin_neon_vld2q_lane_v, "V32cvC*ii", "n")
BUILTIN(__builtin_neon_vld2_lane_v, "V16cvC*ii", "n")
BUILTIN(__builtin_neon_vld3q_v, "V48cvC*i", "n")
BUILTIN(__builtin_neon_vld3_v, "V24cvC*i", "n")
BUILTIN(__builtin_neon_vld3_dup_v, "V24cvC*i", "n")
BUILTIN(__builtin_neon_vld3q_lane_v, "V48cvC*ii", "n")
BUILTIN(__builtin_neon_vld3_lane_v, "V24cvC*ii", "n")
BUILTIN(__builtin_neon_vld4q_v, "V64cvC*i", "n")
BUILTIN(__builtin_neon_vld4_v, "V32cvC*i", "n")
BUILTIN(__builtin_neon_vld4_dup_v, "V32cvC*i", "n")
BUILTIN(__builtin_neon_vld4q_lane_v, "V64cvC*ii", "n")
BUILTIN(__builtin_neon_vld4_lane_v, "V32cvC*ii", "n")
BUILTIN(__builtin_neon_vmax_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vmaxq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vmin_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vminq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vmlal_v, "V16cV16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vmlal_lane_v, "V16cV16cV8cV8cii", "n")
BUILTIN(__builtin_neon_vmla_lane_v, "V8cV8cV8cV8cii", "n")
BUILTIN(__builtin_neon_vmlaq_lane_v, "V16cV16cV16cV16cii", "n")
BUILTIN(__builtin_neon_vmlsl_v, "V16cV16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vmlsl_lane_v, "V16cV16cV8cV8cii", "n")
BUILTIN(__builtin_neon_vmls_lane_v, "V8cV8cV8cV8cii", "n")
BUILTIN(__builtin_neon_vmlsq_lane_v, "V16cV16cV16cV16cii", "n")
BUILTIN(__builtin_neon_vmovl_v, "V16cV8ci", "n")
BUILTIN(__builtin_neon_vmovn_v, "V8cV16ci", "n")
BUILTIN(__builtin_neon_vmull_v, "V16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vmull_lane_v, "V16cV8cV8cii", "n")
BUILTIN(__builtin_neon_vpadal_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vpadalq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vpadd_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vpaddl_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vpaddlq_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vpmax_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vpmin_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vqabs_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vqabsq_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vqadd_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vqaddq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vqdmlal_v, "V16cV16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vqdmlal_lane_v, "V16cV16cV8cV8cii", "n")
BUILTIN(__builtin_neon_vqdmlsl_v, "V16cV16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vqdmlsl_lane_v, "V16cV16cV8cV8cii", "n")
BUILTIN(__builtin_neon_vqdmulh_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vqdmulhq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vqdmulh_lane_v, "V8cV8cV8cii", "n")
BUILTIN(__builtin_neon_vqdmulhq_lane_v, "V16cV16cV16cii", "n")
BUILTIN(__builtin_neon_vqdmull_v, "V16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vqdmull_lane_v, "V16cV8cV8cii", "n")
BUILTIN(__builtin_neon_vqmovn_v, "V8cV16ci", "n")
BUILTIN(__builtin_neon_vqmovun_v, "V8cV16ci", "n")
BUILTIN(__builtin_neon_vqneg_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vqnegq_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vqrdmulh_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vqrdmulhq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vqrdmulh_lane_v, "V8cV8cV8cii", "n")
BUILTIN(__builtin_neon_vqrdmulhq_lane_v, "V16cV16cV16cii", "n")
BUILTIN(__builtin_neon_vqrshl_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vqrshlq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vqrshrn_n_v, "V8cV16cii", "n")
BUILTIN(__builtin_neon_vqrshrun_n_v, "V8cV16cii", "n")
BUILTIN(__builtin_neon_vqshl_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vqshlq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vqshlu_n_v, "V8cV8cii", "n")
BUILTIN(__builtin_neon_vqshluq_n_v, "V16cV16cii", "n")
BUILTIN(__builtin_neon_vqshl_n_v, "V8cV8cii", "n")
BUILTIN(__builtin_neon_vqshlq_n_v, "V16cV16cii", "n")
BUILTIN(__builtin_neon_vqshrn_n_v, "V8cV16cii", "n")
BUILTIN(__builtin_neon_vqshrun_n_v, "V8cV16cii", "n")
BUILTIN(__builtin_neon_vqsub_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vqsubq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vraddhn_v, "V8cV16cV16ci", "n")
BUILTIN(__builtin_neon_vrecpe_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vrecpeq_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vrecps_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vrecpsq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vrev16_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vrev16q_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vrev32_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vrev32q_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vrev64_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vrev64q_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vrhadd_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vrhaddq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vrshl_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vrshlq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vrshrn_n_v, "V8cV16cii", "n")
BUILTIN(__builtin_neon_vrshr_n_v, "V8cV8cii", "n")
BUILTIN(__builtin_neon_vrshrq_n_v, "V16cV16cii", "n")
BUILTIN(__builtin_neon_vrsqrte_v, "V8cV8ci", "n")
BUILTIN(__builtin_neon_vrsqrteq_v, "V16cV16ci", "n")
BUILTIN(__builtin_neon_vrsqrts_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vrsqrtsq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vrsra_n_v, "V8cV8cV8cii", "n")
BUILTIN(__builtin_neon_vrsraq_n_v, "V16cV16cV16cii", "n")
BUILTIN(__builtin_neon_vrsubhn_v, "V8cV16cV16ci", "n")
BUILTIN(__builtin_neon_vset_lane_i8, "V8cUcV8ci", "n")
BUILTIN(__builtin_neon_vset_lane_i16, "V4sUsV4si", "n")
BUILTIN(__builtin_neon_vset_lane_i32, "V2iUiV2ii", "n")
BUILTIN(__builtin_neon_vset_lane_f32, "V2ffV2fi", "n")
BUILTIN(__builtin_neon_vsetq_lane_i8, "V16cUcV16ci", "n")
BUILTIN(__builtin_neon_vsetq_lane_i16, "V8sUsV8si", "n")
BUILTIN(__builtin_neon_vsetq_lane_i32, "V4iUiV4ii", "n")
BUILTIN(__builtin_neon_vsetq_lane_f32, "V4ffV4fi", "n")
BUILTIN(__builtin_neon_vset_lane_i64, "V1LLiULLiV1LLii", "n")
BUILTIN(__builtin_neon_vsetq_lane_i64, "V2LLiULLiV2LLii", "n")
BUILTIN(__builtin_neon_vshl_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vshlq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vshll_n_v, "V16cV8cii", "n")
BUILTIN(__builtin_neon_vshl_n_v, "V8cV8cii", "n")
BUILTIN(__builtin_neon_vshlq_n_v, "V16cV16cii", "n")
BUILTIN(__builtin_neon_vshrn_n_v, "V8cV16cii", "n")
BUILTIN(__builtin_neon_vshr_n_v, "V8cV8cii", "n")
BUILTIN(__builtin_neon_vshrq_n_v, "V16cV16cii", "n")
BUILTIN(__builtin_neon_vsli_n_v, "V8cV8cV8cii", "n")
BUILTIN(__builtin_neon_vsliq_n_v, "V16cV16cV16cii", "n")
BUILTIN(__builtin_neon_vsra_n_v, "V8cV8cV8cii", "n")
BUILTIN(__builtin_neon_vsraq_n_v, "V16cV16cV16cii", "n")
BUILTIN(__builtin_neon_vsri_n_v, "V8cV8cV8cii", "n")
BUILTIN(__builtin_neon_vsriq_n_v, "V16cV16cV16cii", "n")
BUILTIN(__builtin_neon_vst1q_v, "vv*V16ci", "n")
BUILTIN(__builtin_neon_vst1_v, "vv*V8ci", "n")
BUILTIN(__builtin_neon_vst1q_lane_v, "vv*V16cii", "n")
BUILTIN(__builtin_neon_vst1_lane_v, "vv*V8cii", "n")
BUILTIN(__builtin_neon_vst2q_v, "vv*V16cV16ci", "n")
BUILTIN(__builtin_neon_vst2_v, "vv*V8cV8ci", "n")
BUILTIN(__builtin_neon_vst2q_lane_v, "vv*V16cV16cii", "n")
BUILTIN(__builtin_neon_vst2_lane_v, "vv*V8cV8cii", "n")
BUILTIN(__builtin_neon_vst3q_v, "vv*V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vst3_v, "vv*V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vst3q_lane_v, "vv*V16cV16cV16cii", "n")
BUILTIN(__builtin_neon_vst3_lane_v, "vv*V8cV8cV8cii", "n")
BUILTIN(__builtin_neon_vst4q_v, "vv*V16cV16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vst4_v, "vv*V8cV8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vst4q_lane_v, "vv*V16cV16cV16cV16cii", "n")
BUILTIN(__builtin_neon_vst4_lane_v, "vv*V8cV8cV8cV8cii", "n")
BUILTIN(__builtin_neon_vsubhn_v, "V8cV16cV16ci", "n")
BUILTIN(__builtin_neon_vsubl_v, "V16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vsubw_v, "V16cV16cV8ci", "n")
BUILTIN(__builtin_neon_vtbl1_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vtbl2_v, "V8cV8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vtbl3_v, "V8cV8cV8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vtbl4_v, "V8cV8cV8cV8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vtbx1_v, "V8cV8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vtbx2_v, "V8cV8cV8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vtbx3_v, "V8cV8cV8cV8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vtbx4_v, "V8cV8cV8cV8cV8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vtrn_v, "V16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vtrnq_v, "V32cV16cV16ci", "n")
BUILTIN(__builtin_neon_vtst_v, "V8cV8cV8ci", "n")
BUILTIN(__builtin_neon_vtstq_v, "V16cV16cV16ci", "n")
BUILTIN(__builtin_neon_vuzp_v, "V16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vuzpq_v, "V32cV16cV16ci", "n")
BUILTIN(__builtin_neon_vzip_v, "V16cV8cV8ci", "n")
BUILTIN(__builtin_neon_vzipq_v, "V32cV16cV16ci", "n")

#undef BUILTIN