]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/clang/include/clang/Basic/BuiltinsPPC.def
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[FreeBSD/FreeBSD.git] / contrib / llvm-project / clang / include / clang / Basic / BuiltinsPPC.def
1 //===--- BuiltinsPPC.def - PowerPC Builtin function database ----*- C++ -*-===//
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-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file defines the PowerPC-specific builtin function database.  Users of
10 // this file must define the BUILTIN macro to make use of this information.
11 //
12 //===----------------------------------------------------------------------===//
13
14 // FIXME: this needs to be the full list supported by GCC.  Right now, I'm just
15 // adding stuff on demand.
16
17 // The format of this database matches clang/Basic/Builtins.def.
18
19 BUILTIN(__builtin_ppc_get_timebase, "ULLi", "n")
20
21 // This is just a placeholder, the types and attributes are wrong.
22 BUILTIN(__builtin_altivec_vaddcuw, "V4UiV4UiV4Ui", "")
23
24 BUILTIN(__builtin_altivec_vaddsbs, "V16ScV16ScV16Sc", "")
25 BUILTIN(__builtin_altivec_vaddubs, "V16UcV16UcV16Uc", "")
26 BUILTIN(__builtin_altivec_vaddshs, "V8SsV8SsV8Ss", "")
27 BUILTIN(__builtin_altivec_vadduhs, "V8UsV8UsV8Us", "")
28 BUILTIN(__builtin_altivec_vaddsws, "V4SiV4SiV4Si", "")
29 BUILTIN(__builtin_altivec_vadduws, "V4UiV4UiV4Ui", "")
30 BUILTIN(__builtin_altivec_vaddeuqm, "V1ULLLiV1ULLLiV1ULLLiV1ULLLi","")
31 BUILTIN(__builtin_altivec_vaddcuq, "V1ULLLiV1ULLLiV1ULLLi","")
32 BUILTIN(__builtin_altivec_vaddecuq, "V1ULLLiV1ULLLiV1ULLLiV1ULLLi","")
33
34 BUILTIN(__builtin_altivec_vsubsbs, "V16ScV16ScV16Sc", "")
35 BUILTIN(__builtin_altivec_vsububs, "V16UcV16UcV16Uc", "")
36 BUILTIN(__builtin_altivec_vsubshs, "V8SsV8SsV8Ss", "")
37 BUILTIN(__builtin_altivec_vsubuhs, "V8UsV8UsV8Us", "")
38 BUILTIN(__builtin_altivec_vsubsws, "V4SiV4SiV4Si", "")
39 BUILTIN(__builtin_altivec_vsubuws, "V4UiV4UiV4Ui", "")
40 BUILTIN(__builtin_altivec_vsubeuqm, "V1ULLLiV1ULLLiV1ULLLiV1ULLLi","")
41 BUILTIN(__builtin_altivec_vsubcuq, "V1ULLLiV1ULLLiV1ULLLi","")
42 BUILTIN(__builtin_altivec_vsubecuq, "V1ULLLiV1ULLLiV1ULLLiV1ULLLi","")
43
44 BUILTIN(__builtin_altivec_vavgsb, "V16ScV16ScV16Sc", "")
45 BUILTIN(__builtin_altivec_vavgub, "V16UcV16UcV16Uc", "")
46 BUILTIN(__builtin_altivec_vavgsh, "V8SsV8SsV8Ss", "")
47 BUILTIN(__builtin_altivec_vavguh, "V8UsV8UsV8Us", "")
48 BUILTIN(__builtin_altivec_vavgsw, "V4SiV4SiV4Si", "")
49 BUILTIN(__builtin_altivec_vavguw, "V4UiV4UiV4Ui", "")
50
51 BUILTIN(__builtin_altivec_vrfip, "V4fV4f", "")
52
53 BUILTIN(__builtin_altivec_vcfsx, "V4fV4SiIi", "")
54 BUILTIN(__builtin_altivec_vcfux, "V4fV4UiIi", "")
55 BUILTIN(__builtin_altivec_vctsxs, "V4SiV4fIi", "")
56 BUILTIN(__builtin_altivec_vctuxs, "V4UiV4fIi", "")
57
58 BUILTIN(__builtin_altivec_dss, "vUIi", "")
59 BUILTIN(__builtin_altivec_dssall, "v", "")
60 BUILTIN(__builtin_altivec_dst, "vvC*iUIi", "")
61 BUILTIN(__builtin_altivec_dstt, "vvC*iUIi", "")
62 BUILTIN(__builtin_altivec_dstst, "vvC*iUIi", "")
63 BUILTIN(__builtin_altivec_dststt, "vvC*iUIi", "")
64
65 BUILTIN(__builtin_altivec_vexptefp, "V4fV4f", "")
66
67 BUILTIN(__builtin_altivec_vrfim, "V4fV4f", "")
68
69 BUILTIN(__builtin_altivec_lvx, "V4iivC*", "")
70 BUILTIN(__builtin_altivec_lvxl, "V4iivC*", "")
71 BUILTIN(__builtin_altivec_lvebx, "V16civC*", "")
72 BUILTIN(__builtin_altivec_lvehx, "V8sivC*", "")
73 BUILTIN(__builtin_altivec_lvewx, "V4iivC*", "")
74
75 BUILTIN(__builtin_altivec_vlogefp, "V4fV4f", "")
76
77 BUILTIN(__builtin_altivec_lvsl, "V16cUcvC*", "")
78 BUILTIN(__builtin_altivec_lvsr, "V16cUcvC*", "")
79
80 BUILTIN(__builtin_altivec_vmaddfp, "V4fV4fV4fV4f", "")
81 BUILTIN(__builtin_altivec_vmhaddshs, "V8sV8sV8sV8s", "")
82 BUILTIN(__builtin_altivec_vmhraddshs, "V8sV8sV8sV8s", "")
83
84 BUILTIN(__builtin_altivec_vmsumubm, "V4UiV16UcV16UcV4Ui", "")
85 BUILTIN(__builtin_altivec_vmsummbm, "V4SiV16ScV16UcV4Si", "")
86 BUILTIN(__builtin_altivec_vmsumuhm, "V4UiV8UsV8UsV4Ui", "")
87 BUILTIN(__builtin_altivec_vmsumshm, "V4SiV8SsV8SsV4Si", "")
88 BUILTIN(__builtin_altivec_vmsumuhs, "V4UiV8UsV8UsV4Ui", "")
89 BUILTIN(__builtin_altivec_vmsumshs, "V4SiV8SsV8SsV4Si", "")
90
91 BUILTIN(__builtin_altivec_vmuleub, "V8UsV16UcV16Uc", "")
92 BUILTIN(__builtin_altivec_vmulesb, "V8SsV16ScV16Sc", "")
93 BUILTIN(__builtin_altivec_vmuleuh, "V4UiV8UsV8Us", "")
94 BUILTIN(__builtin_altivec_vmulesh, "V4SiV8SsV8Ss", "")
95 BUILTIN(__builtin_altivec_vmuleuw, "V2ULLiV4UiV4Ui", "")
96 BUILTIN(__builtin_altivec_vmulesw, "V2SLLiV4SiV4Si", "")
97 BUILTIN(__builtin_altivec_vmuloub, "V8UsV16UcV16Uc", "")
98 BUILTIN(__builtin_altivec_vmulosb, "V8SsV16ScV16Sc", "")
99 BUILTIN(__builtin_altivec_vmulouh, "V4UiV8UsV8Us", "")
100 BUILTIN(__builtin_altivec_vmulosh, "V4SiV8SsV8Ss", "")
101 BUILTIN(__builtin_altivec_vmulouw, "V2ULLiV4UiV4Ui", "")
102 BUILTIN(__builtin_altivec_vmulosw, "V2SLLiV4SiV4Si", "")
103
104 BUILTIN(__builtin_altivec_vnmsubfp, "V4fV4fV4fV4f", "")
105
106 BUILTIN(__builtin_altivec_vpkpx, "V8sV4UiV4Ui", "")
107 BUILTIN(__builtin_altivec_vpkuhus, "V16UcV8UsV8Us", "")
108 BUILTIN(__builtin_altivec_vpkshss, "V16ScV8SsV8Ss", "")
109 BUILTIN(__builtin_altivec_vpkuwus, "V8UsV4UiV4Ui", "")
110 BUILTIN(__builtin_altivec_vpkswss, "V8SsV4SiV4Si", "")
111 BUILTIN(__builtin_altivec_vpkshus, "V16UcV8SsV8Ss", "")
112 BUILTIN(__builtin_altivec_vpkswus, "V8UsV4SiV4Si", "")
113 BUILTIN(__builtin_altivec_vpksdss, "V4SiV2SLLiV2SLLi", "")
114 BUILTIN(__builtin_altivec_vpksdus, "V4UiV2SLLiV2SLLi", "")
115 BUILTIN(__builtin_altivec_vpkudus, "V4UiV2ULLiV2ULLi", "")
116 BUILTIN(__builtin_altivec_vpkudum, "V4UiV2ULLiV2ULLi", "")
117
118 BUILTIN(__builtin_altivec_vperm_4si, "V4iV4iV4iV16Uc", "")
119
120 BUILTIN(__builtin_altivec_stvx, "vV4iiv*", "")
121 BUILTIN(__builtin_altivec_stvxl, "vV4iiv*", "")
122 BUILTIN(__builtin_altivec_stvebx, "vV16civ*", "")
123 BUILTIN(__builtin_altivec_stvehx, "vV8siv*", "")
124 BUILTIN(__builtin_altivec_stvewx, "vV4iiv*", "")
125
126 BUILTIN(__builtin_altivec_vcmpbfp, "V4iV4fV4f", "")
127
128 BUILTIN(__builtin_altivec_vcmpgefp, "V4iV4fV4f", "")
129
130 BUILTIN(__builtin_altivec_vcmpequb, "V16cV16cV16c", "")
131 BUILTIN(__builtin_altivec_vcmpequh, "V8sV8sV8s", "")
132 BUILTIN(__builtin_altivec_vcmpequw, "V4iV4iV4i", "")
133 BUILTIN(__builtin_altivec_vcmpequd, "V2LLiV2LLiV2LLi", "")
134 BUILTIN(__builtin_altivec_vcmpeqfp, "V4iV4fV4f", "")
135
136 BUILTIN(__builtin_altivec_vcmpneb, "V16cV16cV16c", "")
137 BUILTIN(__builtin_altivec_vcmpneh, "V8sV8sV8s", "")
138 BUILTIN(__builtin_altivec_vcmpnew, "V4iV4iV4i", "")
139
140 BUILTIN(__builtin_altivec_vcmpnezb, "V16cV16cV16c", "")
141 BUILTIN(__builtin_altivec_vcmpnezh, "V8sV8sV8s", "")
142 BUILTIN(__builtin_altivec_vcmpnezw, "V4iV4iV4i", "")
143
144 BUILTIN(__builtin_altivec_vcmpgtsb, "V16cV16ScV16Sc", "")
145 BUILTIN(__builtin_altivec_vcmpgtub, "V16cV16UcV16Uc", "")
146 BUILTIN(__builtin_altivec_vcmpgtsh, "V8sV8SsV8Ss", "")
147 BUILTIN(__builtin_altivec_vcmpgtuh, "V8sV8UsV8Us", "")
148 BUILTIN(__builtin_altivec_vcmpgtsw, "V4iV4SiV4Si", "")
149 BUILTIN(__builtin_altivec_vcmpgtuw, "V4iV4UiV4Ui", "")
150 BUILTIN(__builtin_altivec_vcmpgtsd, "V2LLiV2LLiV2LLi", "")
151 BUILTIN(__builtin_altivec_vcmpgtud, "V2LLiV2ULLiV2ULLi", "")
152 BUILTIN(__builtin_altivec_vcmpgtfp, "V4iV4fV4f", "")
153
154 BUILTIN(__builtin_altivec_vmaxsb, "V16ScV16ScV16Sc", "")
155 BUILTIN(__builtin_altivec_vmaxub, "V16UcV16UcV16Uc", "")
156 BUILTIN(__builtin_altivec_vmaxsh, "V8SsV8SsV8Ss", "")
157 BUILTIN(__builtin_altivec_vmaxuh, "V8UsV8UsV8Us", "")
158 BUILTIN(__builtin_altivec_vmaxsw, "V4SiV4SiV4Si", "")
159 BUILTIN(__builtin_altivec_vmaxuw, "V4UiV4UiV4Ui", "")
160 BUILTIN(__builtin_altivec_vmaxsd, "V2LLiV2LLiV2LLi", "")
161 BUILTIN(__builtin_altivec_vmaxud, "V2ULLiV2ULLiV2ULLi", "")
162 BUILTIN(__builtin_altivec_vmaxfp, "V4fV4fV4f", "")
163
164 BUILTIN(__builtin_altivec_mfvscr, "V8Us", "")
165
166 BUILTIN(__builtin_altivec_vminsb, "V16ScV16ScV16Sc", "")
167 BUILTIN(__builtin_altivec_vminub, "V16UcV16UcV16Uc", "")
168 BUILTIN(__builtin_altivec_vminsh, "V8SsV8SsV8Ss", "")
169 BUILTIN(__builtin_altivec_vminuh, "V8UsV8UsV8Us", "")
170 BUILTIN(__builtin_altivec_vminsw, "V4SiV4SiV4Si", "")
171 BUILTIN(__builtin_altivec_vminuw, "V4UiV4UiV4Ui", "")
172 BUILTIN(__builtin_altivec_vminsd, "V2LLiV2LLiV2LLi", "")
173 BUILTIN(__builtin_altivec_vminud, "V2ULLiV2ULLiV2ULLi", "")
174 BUILTIN(__builtin_altivec_vminfp, "V4fV4fV4f", "")
175
176 BUILTIN(__builtin_altivec_mtvscr, "vV4i", "")
177
178 BUILTIN(__builtin_altivec_vrefp, "V4fV4f", "")
179
180 BUILTIN(__builtin_altivec_vrlb, "V16cV16cV16Uc", "")
181 BUILTIN(__builtin_altivec_vrlh, "V8sV8sV8Us", "")
182 BUILTIN(__builtin_altivec_vrlw, "V4iV4iV4Ui", "")
183 BUILTIN(__builtin_altivec_vrld, "V2LLiV2LLiV2ULLi", "")
184
185 BUILTIN(__builtin_altivec_vsel_4si, "V4iV4iV4iV4Ui", "")
186
187 BUILTIN(__builtin_altivec_vsl, "V4iV4iV4i", "")
188 BUILTIN(__builtin_altivec_vslo, "V4iV4iV4i", "")
189
190 BUILTIN(__builtin_altivec_vsrab, "V16cV16cV16Uc", "")
191 BUILTIN(__builtin_altivec_vsrah, "V8sV8sV8Us", "")
192 BUILTIN(__builtin_altivec_vsraw, "V4iV4iV4Ui", "")
193
194 BUILTIN(__builtin_altivec_vsr, "V4iV4iV4i", "")
195 BUILTIN(__builtin_altivec_vsro, "V4iV4iV4i", "")
196
197 BUILTIN(__builtin_altivec_vrfin, "V4fV4f", "")
198
199 BUILTIN(__builtin_altivec_vrsqrtefp, "V4fV4f", "")
200
201 BUILTIN(__builtin_altivec_vsubcuw, "V4UiV4UiV4Ui", "")
202
203 BUILTIN(__builtin_altivec_vsum4sbs, "V4SiV16ScV4Si", "")
204 BUILTIN(__builtin_altivec_vsum4ubs, "V4UiV16UcV4Ui", "")
205 BUILTIN(__builtin_altivec_vsum4shs, "V4SiV8SsV4Si", "")
206
207 BUILTIN(__builtin_altivec_vsum2sws, "V4SiV4SiV4Si", "")
208
209 BUILTIN(__builtin_altivec_vsumsws, "V4SiV4SiV4Si", "")
210
211 BUILTIN(__builtin_altivec_vrfiz, "V4fV4f", "")
212
213 BUILTIN(__builtin_altivec_vupkhsb, "V8sV16c", "")
214 BUILTIN(__builtin_altivec_vupkhpx, "V4UiV8s", "")
215 BUILTIN(__builtin_altivec_vupkhsh, "V4iV8s", "")
216 BUILTIN(__builtin_altivec_vupkhsw, "V2LLiV4i", "")
217
218 BUILTIN(__builtin_altivec_vupklsb, "V8sV16c", "")
219 BUILTIN(__builtin_altivec_vupklpx, "V4UiV8s", "")
220 BUILTIN(__builtin_altivec_vupklsh, "V4iV8s", "")
221 BUILTIN(__builtin_altivec_vupklsw, "V2LLiV4i", "")
222
223 BUILTIN(__builtin_altivec_vcmpbfp_p, "iiV4fV4f", "")
224
225 BUILTIN(__builtin_altivec_vcmpgefp_p, "iiV4fV4f", "")
226
227 BUILTIN(__builtin_altivec_vcmpequb_p, "iiV16cV16c", "")
228 BUILTIN(__builtin_altivec_vcmpequh_p, "iiV8sV8s", "")
229 BUILTIN(__builtin_altivec_vcmpequw_p, "iiV4iV4i", "")
230 BUILTIN(__builtin_altivec_vcmpequd_p, "iiV2LLiV2LLi", "")
231 BUILTIN(__builtin_altivec_vcmpeqfp_p, "iiV4fV4f", "")
232
233 BUILTIN(__builtin_altivec_vcmpneb_p, "iiV16cV16c", "")
234 BUILTIN(__builtin_altivec_vcmpneh_p, "iiV8sV8s", "")
235 BUILTIN(__builtin_altivec_vcmpnew_p, "iiV4iV4i", "")
236 BUILTIN(__builtin_altivec_vcmpned_p, "iiV2LLiV2LLi", "")
237
238 BUILTIN(__builtin_altivec_vcmpgtsb_p, "iiV16ScV16Sc", "")
239 BUILTIN(__builtin_altivec_vcmpgtub_p, "iiV16UcV16Uc", "")
240 BUILTIN(__builtin_altivec_vcmpgtsh_p, "iiV8SsV8Ss", "")
241 BUILTIN(__builtin_altivec_vcmpgtuh_p, "iiV8UsV8Us", "")
242 BUILTIN(__builtin_altivec_vcmpgtsw_p, "iiV4SiV4Si", "")
243 BUILTIN(__builtin_altivec_vcmpgtuw_p, "iiV4UiV4Ui", "")
244 BUILTIN(__builtin_altivec_vcmpgtsd_p, "iiV2LLiV2LLi", "")
245 BUILTIN(__builtin_altivec_vcmpgtud_p, "iiV2ULLiV2ULLi", "")
246 BUILTIN(__builtin_altivec_vcmpgtfp_p, "iiV4fV4f", "")
247
248 BUILTIN(__builtin_altivec_vgbbd, "V16UcV16Uc", "")
249 BUILTIN(__builtin_altivec_vbpermq, "V2ULLiV16UcV16Uc", "")
250
251 // P8 Crypto built-ins.
252 BUILTIN(__builtin_altivec_crypto_vsbox, "V2ULLiV2ULLi", "")
253 BUILTIN(__builtin_altivec_crypto_vpermxor, "V16UcV16UcV16UcV16Uc", "")
254 BUILTIN(__builtin_altivec_crypto_vshasigmaw, "V4UiV4UiIiIi", "")
255 BUILTIN(__builtin_altivec_crypto_vshasigmad, "V2ULLiV2ULLiIiIi", "")
256 BUILTIN(__builtin_altivec_crypto_vcipher, "V2ULLiV2ULLiV2ULLi", "")
257 BUILTIN(__builtin_altivec_crypto_vcipherlast, "V2ULLiV2ULLiV2ULLi", "")
258 BUILTIN(__builtin_altivec_crypto_vncipher, "V2ULLiV2ULLiV2ULLi", "")
259 BUILTIN(__builtin_altivec_crypto_vncipherlast, "V2ULLiV2ULLiV2ULLi", "")
260 BUILTIN(__builtin_altivec_crypto_vpmsumb, "V16UcV16UcV16Uc", "")
261 BUILTIN(__builtin_altivec_crypto_vpmsumh, "V8UsV8UsV8Us", "")
262 BUILTIN(__builtin_altivec_crypto_vpmsumw, "V4UiV4UiV4Ui", "")
263 BUILTIN(__builtin_altivec_crypto_vpmsumd, "V2ULLiV2ULLiV2ULLi", "")
264
265 BUILTIN(__builtin_altivec_vclzb, "V16UcV16Uc", "")
266 BUILTIN(__builtin_altivec_vclzh, "V8UsV8Us", "")
267 BUILTIN(__builtin_altivec_vclzw, "V4UiV4Ui", "")
268 BUILTIN(__builtin_altivec_vclzd, "V2ULLiV2ULLi", "")
269 BUILTIN(__builtin_altivec_vctzb, "V16UcV16Uc", "")
270 BUILTIN(__builtin_altivec_vctzh, "V8UsV8Us", "")
271 BUILTIN(__builtin_altivec_vctzw, "V4UiV4Ui", "")
272 BUILTIN(__builtin_altivec_vctzd, "V2ULLiV2ULLi", "")
273
274 BUILTIN(__builtin_altivec_vclzlsbb, "SiV16Uc", "")
275 BUILTIN(__builtin_altivec_vctzlsbb, "SiV16Uc", "")
276 BUILTIN(__builtin_altivec_vprtybw, "V4UiV4Ui", "")
277 BUILTIN(__builtin_altivec_vprtybd, "V2ULLiV2ULLi", "")
278 BUILTIN(__builtin_altivec_vprtybq, "V1ULLLiV1ULLLi", "")
279
280 // Vector population count built-ins
281 BUILTIN(__builtin_altivec_vpopcntb, "V16UcV16Uc", "")
282 BUILTIN(__builtin_altivec_vpopcnth, "V8UsV8Us", "")
283 BUILTIN(__builtin_altivec_vpopcntw, "V4UiV4Ui", "")
284 BUILTIN(__builtin_altivec_vpopcntd, "V2ULLiV2ULLi", "")
285
286 // Absolute difference built-ins
287 BUILTIN(__builtin_altivec_vabsdub, "V16UcV16UcV16Uc", "")
288 BUILTIN(__builtin_altivec_vabsduh, "V8UsV8UsV8Us", "")
289 BUILTIN(__builtin_altivec_vabsduw, "V4UiV4UiV4Ui", "")
290
291 // P9 Shift built-ins.
292 BUILTIN(__builtin_altivec_vslv, "V16UcV16UcV16Uc", "")
293 BUILTIN(__builtin_altivec_vsrv, "V16UcV16UcV16Uc", "")
294
295 // P9 Vector rotate built-ins
296 BUILTIN(__builtin_altivec_vrlwmi, "V4UiV4UiV4UiV4Ui", "")
297 BUILTIN(__builtin_altivec_vrldmi, "V2ULLiV2ULLiV2ULLiV2ULLi", "")
298 BUILTIN(__builtin_altivec_vrlwnm, "V4UiV4UiV4Ui", "")
299 BUILTIN(__builtin_altivec_vrldnm, "V2ULLiV2ULLiV2ULLi", "")
300
301 // P10 Vector Parallel Bits built-ins.
302 BUILTIN(__builtin_altivec_vpdepd, "V2ULLiV2ULLiV2ULLi", "")
303 BUILTIN(__builtin_altivec_vpextd, "V2ULLiV2ULLiV2ULLi", "")
304
305 // P10 Vector Centrifuge built-in.
306 BUILTIN(__builtin_altivec_vcfuged, "V2ULLiV2ULLiV2ULLi", "")
307
308 // P10 Vector Gather Every N-th Bit built-in.
309 BUILTIN(__builtin_altivec_vgnb, "ULLiV1ULLLiIi", "")
310
311 // P10 Vector Clear Bytes built-ins.
312 BUILTIN(__builtin_altivec_vclrlb, "V16cV16cUi", "")
313 BUILTIN(__builtin_altivec_vclrrb, "V16cV16cUi", "")
314
315 // P10 Vector Count Leading / Trailing Zeroes under bit Mask built-ins.
316 BUILTIN(__builtin_altivec_vclzdm, "V2ULLiV2ULLiV2ULLi", "")
317 BUILTIN(__builtin_altivec_vctzdm, "V2ULLiV2ULLiV2ULLi", "")
318
319 // P10 Vector Shift built-ins.
320 BUILTIN(__builtin_altivec_vsldbi, "V16UcV16UcV16UcIi", "")
321 BUILTIN(__builtin_altivec_vsrdbi, "V16UcV16UcV16UcIi", "")
322
323 // P10 Vector Insert built-ins.
324 BUILTIN(__builtin_altivec_vinsblx, "V16UcV16UcULLiULLi", "")
325 BUILTIN(__builtin_altivec_vinsbrx, "V16UcV16UcULLiULLi", "")
326 BUILTIN(__builtin_altivec_vinshlx, "V8UsV8UsULLiULLi", "")
327 BUILTIN(__builtin_altivec_vinshrx, "V8UsV8UsULLiULLi", "")
328 BUILTIN(__builtin_altivec_vinswlx, "V4UiV4UiULLiULLi", "")
329 BUILTIN(__builtin_altivec_vinswrx, "V4UiV4UiULLiULLi", "")
330 BUILTIN(__builtin_altivec_vinsdlx, "V2ULLiV2ULLiULLiULLi", "")
331 BUILTIN(__builtin_altivec_vinsdrx, "V2ULLiV2ULLiULLiULLi", "")
332 BUILTIN(__builtin_altivec_vinsbvlx, "V16UcV16UcULLiV16Uc", "")
333 BUILTIN(__builtin_altivec_vinsbvrx, "V16UcV16UcULLiV16Uc", "")
334 BUILTIN(__builtin_altivec_vinshvlx, "V8UsV8UsULLiV8Us", "")
335 BUILTIN(__builtin_altivec_vinshvrx, "V8UsV8UsULLiV8Us", "")
336 BUILTIN(__builtin_altivec_vinswvlx, "V4UiV4UiULLiV4Ui", "")
337 BUILTIN(__builtin_altivec_vinswvrx, "V4UiV4UiULLiV4Ui", "")
338
339 // VSX built-ins.
340
341 BUILTIN(__builtin_vsx_lxvd2x, "V2divC*", "")
342 BUILTIN(__builtin_vsx_lxvw4x, "V4iivC*", "")
343 BUILTIN(__builtin_vsx_lxvd2x_be, "V2dSLLivC*", "")
344 BUILTIN(__builtin_vsx_lxvw4x_be, "V4iSLLivC*", "")
345
346 BUILTIN(__builtin_vsx_stxvd2x, "vV2div*", "")
347 BUILTIN(__builtin_vsx_stxvw4x, "vV4iiv*", "")
348 BUILTIN(__builtin_vsx_stxvd2x_be, "vV2dSLLivC*", "")
349 BUILTIN(__builtin_vsx_stxvw4x_be, "vV4iSLLivC*", "")
350
351 BUILTIN(__builtin_vsx_lxvl, "V4ivC*ULLi", "")
352 BUILTIN(__builtin_vsx_lxvll, "V4ivC*ULLi", "")
353 BUILTIN(__builtin_vsx_stxvl, "vV4iv*ULLi", "")
354 BUILTIN(__builtin_vsx_stxvll, "vV4iv*ULLi", "")
355
356 BUILTIN(__builtin_vsx_xvmaxdp, "V2dV2dV2d", "")
357 BUILTIN(__builtin_vsx_xvmaxsp, "V4fV4fV4f", "")
358 BUILTIN(__builtin_vsx_xsmaxdp, "ddd", "")
359
360 BUILTIN(__builtin_vsx_xvmindp, "V2dV2dV2d", "")
361 BUILTIN(__builtin_vsx_xvminsp, "V4fV4fV4f", "")
362 BUILTIN(__builtin_vsx_xsmindp, "ddd", "")
363
364 BUILTIN(__builtin_vsx_xvdivdp, "V2dV2dV2d", "")
365 BUILTIN(__builtin_vsx_xvdivsp, "V4fV4fV4f", "")
366
367 BUILTIN(__builtin_vsx_xvrdpip, "V2dV2d", "")
368 BUILTIN(__builtin_vsx_xvrspip, "V4fV4f", "")
369
370 BUILTIN(__builtin_vsx_xvcmpeqdp, "V2ULLiV2dV2d", "")
371 BUILTIN(__builtin_vsx_xvcmpeqsp, "V4UiV4fV4f", "")
372
373 BUILTIN(__builtin_vsx_xvcmpeqdp_p, "iiV2dV2d", "")
374 BUILTIN(__builtin_vsx_xvcmpeqsp_p, "iiV4fV4f", "")
375
376 BUILTIN(__builtin_vsx_xvcmpgedp, "V2ULLiV2dV2d", "")
377 BUILTIN(__builtin_vsx_xvcmpgesp, "V4UiV4fV4f", "")
378
379 BUILTIN(__builtin_vsx_xvcmpgedp_p, "iiV2dV2d", "")
380 BUILTIN(__builtin_vsx_xvcmpgesp_p, "iiV4fV4f", "")
381
382 BUILTIN(__builtin_vsx_xvcmpgtdp, "V2ULLiV2dV2d", "")
383 BUILTIN(__builtin_vsx_xvcmpgtsp, "V4UiV4fV4f", "")
384
385 BUILTIN(__builtin_vsx_xvcmpgtdp_p, "iiV2dV2d", "")
386 BUILTIN(__builtin_vsx_xvcmpgtsp_p, "iiV4fV4f", "")
387
388 BUILTIN(__builtin_vsx_xvrdpim, "V2dV2d", "")
389 BUILTIN(__builtin_vsx_xvrspim, "V4fV4f", "")
390
391 BUILTIN(__builtin_vsx_xvrdpi, "V2dV2d", "")
392 BUILTIN(__builtin_vsx_xvrspi, "V4fV4f", "")
393
394 BUILTIN(__builtin_vsx_xvrdpic, "V2dV2d", "")
395 BUILTIN(__builtin_vsx_xvrspic, "V4fV4f", "")
396
397 BUILTIN(__builtin_vsx_xvrdpiz, "V2dV2d", "")
398 BUILTIN(__builtin_vsx_xvrspiz, "V4fV4f", "")
399
400 BUILTIN(__builtin_vsx_xvmaddadp, "V2dV2dV2dV2d", "")
401 BUILTIN(__builtin_vsx_xvmaddasp, "V4fV4fV4fV4f", "")
402
403 BUILTIN(__builtin_vsx_xvmsubadp, "V2dV2dV2dV2d", "")
404 BUILTIN(__builtin_vsx_xvmsubasp, "V4fV4fV4fV4f", "")
405
406 BUILTIN(__builtin_vsx_xvmuldp, "V2dV2dV2d", "")
407 BUILTIN(__builtin_vsx_xvmulsp, "V4fV4fV4f", "")
408
409 BUILTIN(__builtin_vsx_xvnmaddadp, "V2dV2dV2dV2d", "")
410 BUILTIN(__builtin_vsx_xvnmaddasp, "V4fV4fV4fV4f", "")
411
412 BUILTIN(__builtin_vsx_xvnmsubadp, "V2dV2dV2dV2d", "")
413 BUILTIN(__builtin_vsx_xvnmsubasp, "V4fV4fV4fV4f", "")
414
415 BUILTIN(__builtin_vsx_xvredp, "V2dV2d", "")
416 BUILTIN(__builtin_vsx_xvresp, "V4fV4f", "")
417
418 BUILTIN(__builtin_vsx_xvrsqrtedp, "V2dV2d", "")
419 BUILTIN(__builtin_vsx_xvrsqrtesp, "V4fV4f", "")
420
421 BUILTIN(__builtin_vsx_xvsqrtdp, "V2dV2d", "")
422 BUILTIN(__builtin_vsx_xvsqrtsp, "V4fV4f", "")
423
424 BUILTIN(__builtin_vsx_xxleqv, "V4UiV4UiV4Ui", "")
425
426 BUILTIN(__builtin_vsx_xvcpsgndp, "V2dV2dV2d", "")
427 BUILTIN(__builtin_vsx_xvcpsgnsp, "V4fV4fV4f", "")
428
429 BUILTIN(__builtin_vsx_xvabssp, "V4fV4f", "")
430 BUILTIN(__builtin_vsx_xvabsdp, "V2dV2d", "")
431
432 BUILTIN(__builtin_vsx_xxgenpcvbm, "V16UcV16Uci", "")
433 BUILTIN(__builtin_vsx_xxgenpcvhm, "V8UsV8Usi", "")
434 BUILTIN(__builtin_vsx_xxgenpcvwm, "V4UiV4Uii", "")
435 BUILTIN(__builtin_vsx_xxgenpcvdm, "V2ULLiV2ULLii", "")
436
437 // vector Insert/Extract exponent/significand builtins
438 BUILTIN(__builtin_vsx_xviexpdp, "V2dV2ULLiV2ULLi", "")
439 BUILTIN(__builtin_vsx_xviexpsp, "V4fV4UiV4Ui", "")
440 BUILTIN(__builtin_vsx_xvxexpdp, "V2ULLiV2d", "")
441 BUILTIN(__builtin_vsx_xvxexpsp, "V4UiV4f", "")
442 BUILTIN(__builtin_vsx_xvxsigdp, "V2ULLiV2d", "")
443 BUILTIN(__builtin_vsx_xvxsigsp, "V4UiV4f", "")
444
445 // Conversion builtins
446 BUILTIN(__builtin_vsx_xvcvdpsxws, "V4SiV2d", "")
447 BUILTIN(__builtin_vsx_xvcvdpuxws, "V4UiV2d", "")
448 BUILTIN(__builtin_vsx_xvcvsxwdp, "V2dV4Si", "")
449 BUILTIN(__builtin_vsx_xvcvuxwdp, "V2dV4Ui", "")
450 BUILTIN(__builtin_vsx_xvcvspdp, "V2dV4f", "")
451 BUILTIN(__builtin_vsx_xvcvsxdsp, "V4fV2SLLi", "")
452 BUILTIN(__builtin_vsx_xvcvuxdsp, "V4fV2ULLi", "")
453 BUILTIN(__builtin_vsx_xvcvdpsp, "V4fV2d", "")
454
455 BUILTIN(__builtin_vsx_xvcvsphp, "V4fV4f", "")
456 BUILTIN(__builtin_vsx_xvcvhpsp, "V4fV8Us", "")
457
458 // Vector Test Data Class builtins
459 BUILTIN(__builtin_vsx_xvtstdcdp, "V2ULLiV2dIi", "")
460 BUILTIN(__builtin_vsx_xvtstdcsp, "V4UiV4fIi", "")
461
462 BUILTIN(__builtin_vsx_insertword, "V16UcV4UiV16UcIi", "")
463 BUILTIN(__builtin_vsx_extractuword, "V2ULLiV16UcIi", "")
464
465 BUILTIN(__builtin_vsx_xxpermdi, "v.", "t")
466 BUILTIN(__builtin_vsx_xxsldwi, "v.", "t")
467
468 BUILTIN(__builtin_vsx_xxeval, "V2ULLiV2ULLiV2ULLiV2ULLiIi", "")
469
470 BUILTIN(__builtin_vsx_xvtlsbb, "iV16Ucb", "")
471
472 // P10 Vector Permute Extended built-in.
473 BUILTIN(__builtin_vsx_xxpermx, "V16UcV16UcV16UcV16UcIi", "")
474
475 // P10 Vector Blend built-ins.
476 BUILTIN(__builtin_vsx_xxblendvb, "V16UcV16UcV16UcV16Uc", "")
477 BUILTIN(__builtin_vsx_xxblendvh, "V8UsV8UsV8UsV8Us", "")
478 BUILTIN(__builtin_vsx_xxblendvw, "V4UiV4UiV4UiV4Ui", "")
479 BUILTIN(__builtin_vsx_xxblendvd, "V2ULLiV2ULLiV2ULLiV2ULLi", "")
480
481 // Float 128 built-ins
482 BUILTIN(__builtin_sqrtf128_round_to_odd, "LLdLLd", "")
483 BUILTIN(__builtin_addf128_round_to_odd, "LLdLLdLLd", "")
484 BUILTIN(__builtin_subf128_round_to_odd, "LLdLLdLLd", "")
485 BUILTIN(__builtin_mulf128_round_to_odd, "LLdLLdLLd", "")
486 BUILTIN(__builtin_divf128_round_to_odd, "LLdLLdLLd", "")
487 BUILTIN(__builtin_fmaf128_round_to_odd, "LLdLLdLLdLLd", "")
488 BUILTIN(__builtin_truncf128_round_to_odd, "dLLd", "")
489 BUILTIN(__builtin_vsx_scalar_extract_expq, "ULLiLLd", "")
490 BUILTIN(__builtin_vsx_scalar_insert_exp_qp, "LLdLLdULLi", "")
491
492 // HTM builtins
493 BUILTIN(__builtin_tbegin, "UiUIi", "")
494 BUILTIN(__builtin_tend, "UiUIi", "")
495
496 BUILTIN(__builtin_tabort, "UiUi", "")
497 BUILTIN(__builtin_tabortdc, "UiUiUiUi", "")
498 BUILTIN(__builtin_tabortdci, "UiUiUii", "")
499 BUILTIN(__builtin_tabortwc, "UiUiUiUi", "")
500 BUILTIN(__builtin_tabortwci, "UiUiUii", "")
501
502 BUILTIN(__builtin_tcheck, "Ui", "")
503 BUILTIN(__builtin_treclaim, "UiUi", "")
504 BUILTIN(__builtin_trechkpt, "Ui", "")
505 BUILTIN(__builtin_tsr, "UiUi", "")
506
507 BUILTIN(__builtin_tendall, "Ui", "")
508 BUILTIN(__builtin_tresume, "Ui", "")
509 BUILTIN(__builtin_tsuspend, "Ui", "")
510
511 BUILTIN(__builtin_get_texasr, "LUi", "c")
512 BUILTIN(__builtin_get_texasru, "LUi", "c")
513 BUILTIN(__builtin_get_tfhar, "LUi", "c")
514 BUILTIN(__builtin_get_tfiar, "LUi", "c")
515
516 BUILTIN(__builtin_set_texasr, "vLUi", "c")
517 BUILTIN(__builtin_set_texasru, "vLUi", "c")
518 BUILTIN(__builtin_set_tfhar, "vLUi", "c")
519 BUILTIN(__builtin_set_tfiar, "vLUi", "c")
520
521 BUILTIN(__builtin_ttest, "LUi", "")
522
523 // Scalar built-ins
524 BUILTIN(__builtin_divwe, "SiSiSi", "")
525 BUILTIN(__builtin_divweu, "UiUiUi", "")
526 BUILTIN(__builtin_divde, "SLLiSLLiSLLi", "")
527 BUILTIN(__builtin_divdeu, "ULLiULLiULLi", "")
528 BUILTIN(__builtin_bpermd, "SLLiSLLiSLLi", "")
529 BUILTIN(__builtin_pdepd, "ULLiULLiULLi", "")
530 BUILTIN(__builtin_pextd, "ULLiULLiULLi", "")
531 BUILTIN(__builtin_cfuged, "ULLiULLiULLi", "")
532 BUILTIN(__builtin_cntlzdm, "ULLiULLiULLi", "")
533 BUILTIN(__builtin_cnttzdm, "ULLiULLiULLi", "")
534
535 // Vector int128 (un)pack
536 BUILTIN(__builtin_unpack_vector_int128, "ULLiV1LLLii", "")
537 BUILTIN(__builtin_pack_vector_int128, "V1LLLiULLiULLi", "")
538
539 // Set the floating point rounding mode
540 BUILTIN(__builtin_setrnd, "di", "")
541
542 // Cache built-ins
543 BUILTIN(__builtin_dcbf, "vvC*", "")
544
545 // FIXME: Obviously incomplete.
546
547 #undef BUILTIN