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, "V4fV4iIi", "") |
54 | BUILTIN(__builtin_altivec_vcfux, "V4fV4iIi", "") |
55 | BUILTIN(__builtin_altivec_vctsxs, "V4SiV4fIi", "") |
56 | BUILTIN(__builtin_altivec_vctuxs, "V4UiV4fIi", "") |
57 | |
58 | BUILTIN(__builtin_altivec_dss, "vUi", "") |
59 | BUILTIN(__builtin_altivec_dssall, "v", "") |
60 | BUILTIN(__builtin_altivec_dst, "vvC*iUi", "") |
61 | BUILTIN(__builtin_altivec_dstt, "vvC*iUi", "") |
62 | BUILTIN(__builtin_altivec_dstst, "vvC*iUi", "") |
63 | BUILTIN(__builtin_altivec_dststt, "vvC*iUi", "") |
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 | // VSX built-ins. |
302 | |
303 | BUILTIN(__builtin_vsx_lxvd2x, "V2divC*", "") |
304 | BUILTIN(__builtin_vsx_lxvw4x, "V4iivC*", "") |
305 | BUILTIN(__builtin_vsx_lxvd2x_be, "V2dSLLivC*", "") |
306 | BUILTIN(__builtin_vsx_lxvw4x_be, "V4iSLLivC*", "") |
307 | |
308 | BUILTIN(__builtin_vsx_stxvd2x, "vV2div*", "") |
309 | BUILTIN(__builtin_vsx_stxvw4x, "vV4iiv*", "") |
310 | BUILTIN(__builtin_vsx_stxvd2x_be, "vV2dSLLivC*", "") |
311 | BUILTIN(__builtin_vsx_stxvw4x_be, "vV4iSLLivC*", "") |
312 | |
313 | BUILTIN(__builtin_vsx_lxvl, "V4ivC*ULLi", "") |
314 | BUILTIN(__builtin_vsx_lxvll, "V4ivC*ULLi", "") |
315 | BUILTIN(__builtin_vsx_stxvl, "vV4iv*ULLi", "") |
316 | BUILTIN(__builtin_vsx_stxvll, "vV4iv*ULLi", "") |
317 | |
318 | BUILTIN(__builtin_vsx_xvmaxdp, "V2dV2dV2d", "") |
319 | BUILTIN(__builtin_vsx_xvmaxsp, "V4fV4fV4f", "") |
320 | BUILTIN(__builtin_vsx_xsmaxdp, "ddd", "") |
321 | |
322 | BUILTIN(__builtin_vsx_xvmindp, "V2dV2dV2d", "") |
323 | BUILTIN(__builtin_vsx_xvminsp, "V4fV4fV4f", "") |
324 | BUILTIN(__builtin_vsx_xsmindp, "ddd", "") |
325 | |
326 | BUILTIN(__builtin_vsx_xvdivdp, "V2dV2dV2d", "") |
327 | BUILTIN(__builtin_vsx_xvdivsp, "V4fV4fV4f", "") |
328 | |
329 | BUILTIN(__builtin_vsx_xvrdpip, "V2dV2d", "") |
330 | BUILTIN(__builtin_vsx_xvrspip, "V4fV4f", "") |
331 | |
332 | BUILTIN(__builtin_vsx_xvcmpeqdp, "V2ULLiV2dV2d", "") |
333 | BUILTIN(__builtin_vsx_xvcmpeqsp, "V4UiV4fV4f", "") |
334 | |
335 | BUILTIN(__builtin_vsx_xvcmpeqdp_p, "iiV2dV2d", "") |
336 | BUILTIN(__builtin_vsx_xvcmpeqsp_p, "iiV4fV4f", "") |
337 | |
338 | BUILTIN(__builtin_vsx_xvcmpgedp, "V2ULLiV2dV2d", "") |
339 | BUILTIN(__builtin_vsx_xvcmpgesp, "V4UiV4fV4f", "") |
340 | |
341 | BUILTIN(__builtin_vsx_xvcmpgedp_p, "iiV2dV2d", "") |
342 | BUILTIN(__builtin_vsx_xvcmpgesp_p, "iiV4fV4f", "") |
343 | |
344 | BUILTIN(__builtin_vsx_xvcmpgtdp, "V2ULLiV2dV2d", "") |
345 | BUILTIN(__builtin_vsx_xvcmpgtsp, "V4UiV4fV4f", "") |
346 | |
347 | BUILTIN(__builtin_vsx_xvcmpgtdp_p, "iiV2dV2d", "") |
348 | BUILTIN(__builtin_vsx_xvcmpgtsp_p, "iiV4fV4f", "") |
349 | |
350 | BUILTIN(__builtin_vsx_xvrdpim, "V2dV2d", "") |
351 | BUILTIN(__builtin_vsx_xvrspim, "V4fV4f", "") |
352 | |
353 | BUILTIN(__builtin_vsx_xvrdpi, "V2dV2d", "") |
354 | BUILTIN(__builtin_vsx_xvrspi, "V4fV4f", "") |
355 | |
356 | BUILTIN(__builtin_vsx_xvrdpic, "V2dV2d", "") |
357 | BUILTIN(__builtin_vsx_xvrspic, "V4fV4f", "") |
358 | |
359 | BUILTIN(__builtin_vsx_xvrdpiz, "V2dV2d", "") |
360 | BUILTIN(__builtin_vsx_xvrspiz, "V4fV4f", "") |
361 | |
362 | BUILTIN(__builtin_vsx_xvmaddadp, "V2dV2dV2dV2d", "") |
363 | BUILTIN(__builtin_vsx_xvmaddasp, "V4fV4fV4fV4f", "") |
364 | |
365 | BUILTIN(__builtin_vsx_xvmsubadp, "V2dV2dV2dV2d", "") |
366 | BUILTIN(__builtin_vsx_xvmsubasp, "V4fV4fV4fV4f", "") |
367 | |
368 | BUILTIN(__builtin_vsx_xvmuldp, "V2dV2dV2d", "") |
369 | BUILTIN(__builtin_vsx_xvmulsp, "V4fV4fV4f", "") |
370 | |
371 | BUILTIN(__builtin_vsx_xvnmaddadp, "V2dV2dV2dV2d", "") |
372 | BUILTIN(__builtin_vsx_xvnmaddasp, "V4fV4fV4fV4f", "") |
373 | |
374 | BUILTIN(__builtin_vsx_xvnmsubadp, "V2dV2dV2dV2d", "") |
375 | BUILTIN(__builtin_vsx_xvnmsubasp, "V4fV4fV4fV4f", "") |
376 | |
377 | BUILTIN(__builtin_vsx_xvredp, "V2dV2d", "") |
378 | BUILTIN(__builtin_vsx_xvresp, "V4fV4f", "") |
379 | |
380 | BUILTIN(__builtin_vsx_xvrsqrtedp, "V2dV2d", "") |
381 | BUILTIN(__builtin_vsx_xvrsqrtesp, "V4fV4f", "") |
382 | |
383 | BUILTIN(__builtin_vsx_xvsqrtdp, "V2dV2d", "") |
384 | BUILTIN(__builtin_vsx_xvsqrtsp, "V4fV4f", "") |
385 | |
386 | BUILTIN(__builtin_vsx_xxleqv, "V4UiV4UiV4Ui", "") |
387 | |
388 | BUILTIN(__builtin_vsx_xvcpsgndp, "V2dV2dV2d", "") |
389 | BUILTIN(__builtin_vsx_xvcpsgnsp, "V4fV4fV4f", "") |
390 | |
391 | BUILTIN(__builtin_vsx_xvabssp, "V4fV4f", "") |
392 | BUILTIN(__builtin_vsx_xvabsdp, "V2dV2d", "") |
393 | |
394 | // vector Insert/Extract exponent/significand builtins |
395 | BUILTIN(__builtin_vsx_xviexpdp, "V2dV2ULLiV2ULLi", "") |
396 | BUILTIN(__builtin_vsx_xviexpsp, "V4fV4UiV4Ui", "") |
397 | BUILTIN(__builtin_vsx_xvxexpdp, "V2ULLiV2d", "") |
398 | BUILTIN(__builtin_vsx_xvxexpsp, "V4UiV4f", "") |
399 | BUILTIN(__builtin_vsx_xvxsigdp, "V2ULLiV2d", "") |
400 | BUILTIN(__builtin_vsx_xvxsigsp, "V4UiV4f", "") |
401 | |
402 | // Conversion builtins |
403 | BUILTIN(__builtin_vsx_xvcvdpsxws, "V4SiV2d", "") |
404 | BUILTIN(__builtin_vsx_xvcvdpuxws, "V4UiV2d", "") |
405 | BUILTIN(__builtin_vsx_xvcvsxwdp, "V2dV4Si", "") |
406 | BUILTIN(__builtin_vsx_xvcvuxwdp, "V2dV4Ui", "") |
407 | BUILTIN(__builtin_vsx_xvcvspdp, "V2dV4f", "") |
408 | BUILTIN(__builtin_vsx_xvcvsxdsp, "V4fV2SLLi", "") |
409 | BUILTIN(__builtin_vsx_xvcvuxdsp, "V4fV2ULLi", "") |
410 | BUILTIN(__builtin_vsx_xvcvdpsp, "V4fV2d", "") |
411 | |
412 | BUILTIN(__builtin_vsx_xvcvsphp, "V4fV4f", "") |
413 | BUILTIN(__builtin_vsx_xvcvhpsp, "V4fV8Us", "") |
414 | |
415 | // Vector Test Data Class builtins |
416 | BUILTIN(__builtin_vsx_xvtstdcdp, "V2ULLiV2dIi", "") |
417 | BUILTIN(__builtin_vsx_xvtstdcsp, "V4UiV4fIi", "") |
418 | |
419 | BUILTIN(__builtin_vsx_insertword, "V16UcV4UiV16UcIi", "") |
420 | BUILTIN(__builtin_vsx_extractuword, "V2ULLiV16UcIi", "") |
421 | |
422 | BUILTIN(__builtin_vsx_xxpermdi, "v.", "t") |
423 | BUILTIN(__builtin_vsx_xxsldwi, "v.", "t") |
424 | |
425 | // Float 128 built-ins |
426 | BUILTIN(__builtin_sqrtf128_round_to_odd, "LLdLLd", "") |
427 | BUILTIN(__builtin_addf128_round_to_odd, "LLdLLdLLd", "") |
428 | BUILTIN(__builtin_subf128_round_to_odd, "LLdLLdLLd", "") |
429 | BUILTIN(__builtin_mulf128_round_to_odd, "LLdLLdLLd", "") |
430 | BUILTIN(__builtin_divf128_round_to_odd, "LLdLLdLLd", "") |
431 | BUILTIN(__builtin_fmaf128_round_to_odd, "LLdLLdLLdLLd", "") |
432 | BUILTIN(__builtin_truncf128_round_to_odd, "dLLd", "") |
433 | BUILTIN(__builtin_vsx_scalar_extract_expq, "ULLiLLd", "") |
434 | BUILTIN(__builtin_vsx_scalar_insert_exp_qp, "LLdLLdULLi", "") |
435 | |
436 | // HTM builtins |
437 | BUILTIN(__builtin_tbegin, "UiUIi", "") |
438 | BUILTIN(__builtin_tend, "UiUIi", "") |
439 | |
440 | BUILTIN(__builtin_tabort, "UiUi", "") |
441 | BUILTIN(__builtin_tabortdc, "UiUiUiUi", "") |
442 | BUILTIN(__builtin_tabortdci, "UiUiUii", "") |
443 | BUILTIN(__builtin_tabortwc, "UiUiUiUi", "") |
444 | BUILTIN(__builtin_tabortwci, "UiUiUii", "") |
445 | |
446 | BUILTIN(__builtin_tcheck, "Ui", "") |
447 | BUILTIN(__builtin_treclaim, "UiUi", "") |
448 | BUILTIN(__builtin_trechkpt, "Ui", "") |
449 | BUILTIN(__builtin_tsr, "UiUi", "") |
450 | |
451 | BUILTIN(__builtin_tendall, "Ui", "") |
452 | BUILTIN(__builtin_tresume, "Ui", "") |
453 | BUILTIN(__builtin_tsuspend, "Ui", "") |
454 | |
455 | BUILTIN(__builtin_get_texasr, "LUi", "c") |
456 | BUILTIN(__builtin_get_texasru, "LUi", "c") |
457 | BUILTIN(__builtin_get_tfhar, "LUi", "c") |
458 | BUILTIN(__builtin_get_tfiar, "LUi", "c") |
459 | |
460 | BUILTIN(__builtin_set_texasr, "vLUi", "c") |
461 | BUILTIN(__builtin_set_texasru, "vLUi", "c") |
462 | BUILTIN(__builtin_set_tfhar, "vLUi", "c") |
463 | BUILTIN(__builtin_set_tfiar, "vLUi", "c") |
464 | |
465 | BUILTIN(__builtin_ttest, "LUi", "") |
466 | |
467 | // Scalar built-ins |
468 | BUILTIN(__builtin_divwe, "SiSiSi", "") |
469 | BUILTIN(__builtin_divweu, "UiUiUi", "") |
470 | BUILTIN(__builtin_divde, "SLLiSLLiSLLi", "") |
471 | BUILTIN(__builtin_divdeu, "ULLiULLiULLi", "") |
472 | BUILTIN(__builtin_bpermd, "SLLiSLLiSLLi", "") |
473 | |
474 | // Vector int128 (un)pack |
475 | BUILTIN(__builtin_unpack_vector_int128, "ULLiV1LLLii", "") |
476 | BUILTIN(__builtin_pack_vector_int128, "V1LLLiULLiULLi", "") |
477 | |
478 | // FIXME: Obviously incomplete. |
479 | |
480 | #undef BUILTIN |
481 | |