]> gcc.gnu.org Git - gcc.git/blame - gcc/config/rs6000/rs6000-overload.def
Support IEEE 128-bit overload extract and insert built-in functions.
[gcc.git] / gcc / config / rs6000 / rs6000-overload.def
CommitLineData
4a720a95 1; Overloaded built-in functions for PowerPC.
7adcbafe 2; Copyright (C) 2020-2022 Free Software Foundation, Inc.
4a720a95
BS
3; Contributed by Bill Schmidt, IBM <wschmidt@linux.ibm.com>
4;
5; This file is part of GCC.
6;
7; GCC is free software; you can redistribute it and/or modify it under
8; the terms of the GNU General Public License as published by the Free
9; Software Foundation; either version 3, or (at your option) any later
10; version.
11;
12; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15; for more details.
16;
17; You should have received a copy of the GNU General Public License
18; along with GCC; see the file COPYING3. If not see
19; <http://www.gnu.org/licenses/>.
20
21
22; Overloaded built-in functions in this file are organized into "stanzas",
23; where all built-ins in a given stanza have the same overloaded function
24; name:
25;
26; [<overload-id>, <abi-name>, <builtin-name>[[, <ifdef>]] ]
27;
28; Here the single square brackets are part of the syntax; <overload-id>
29; is a unique internal identifier for the overload that will be used as
30; part of an enumeration of all overloaded functions; <abi-name> is the
31; name that will appear as a #define in rs6000-vecdefines.h;
32; <builtin-name> is the name that is overloaded in the back end; and
33; <ifdef> is an optional token used to guard the #define with an #ifdef
34; in rs6000-vecdefines.h. If no #define is desired, the <abi-name> should
35; be replaced with the token SKIP.
36;
7e836079
BS
37; The <ifdef> token should be used sparingly, because a #define can't be
38; overridden by __attribute__((target)). It is appropriate for cases
39; where a target override isn't a possibility, like __PPU__.
40;
4a720a95
BS
41; Each function entry has two lines. The first line is a prototype line.
42; See rs6000-builtin-new.def for a description of the prototype line.
43; A prototype line in this file differs in that it doesn't have an
44; optional [kind] token:
45;
46; <return-type> <internal-name> (<argument-list>);
47;
48; The second line contains the <bif-id> that this particular instance of
49; the overloaded function maps to. It must match a token that appears in
50; rs6000-builtin-new.def. Optionally, a second token may appear. If only
51; one token is on the line, it is also used to build the unique identifier
52; for the overloaded function. If a second token is present, the second
53; token is used instead for this purpose. This is necessary in cases
54; where a built-in function accepts more than one type signature. It is
55; common to have a built-in function that, for example, specifies a
56; "vector signed char" argument, but accepts "vector unsigned char" and
57; "vector bool char" as well because only the mode matters. Note that
58; the overload resolution mechanism has always handled these cases by
59; performing fold_convert on vector arguments to hide type mismatches,
60; and it will continue to do so.
61;
62; As a concrete example, __builtin_altivec_mtvscr uses an opaque argument
63; type for the source operand. Its built-in function id is MTVSCR. The
64; overloaded function __builtin_vec_mtvscr takes a variety of specific
65; types, but not all vector types. Each of these maps to the same
66; __builtin_altivec_mtvscr built-in function, but the overload ID must
67; be unique, so we must specify the second token as shown here.
68;
69;[VEC_MTVSCR, vec_mtvscr, __builtin_vec_mtvscr]
70; void __builtin_vec_mtvscr (vbc);
71; MTVSCR MTVSCR_VBC
72; void __builtin_vec_mtvscr (vsc);
73; MTVSCR MTVSCR_VSC
74; ...
75;
76; Blank lines may be used as desired in this file between the lines as
77; defined above; that is, you can introduce as many extra newlines as you
78; like after a required newline, but nowhere else. Lines beginning with
79; a semicolon are also treated as blank lines.
80
81
e2693a72
BS
82[BCDADD, __builtin_bcdadd, __builtin_vec_bcdadd]
83 vsq __builtin_vec_bcdadd (vsq, vsq, const int);
84 BCDADD_V1TI
85 vuc __builtin_vec_bcdadd (vuc, vuc, const int);
86 BCDADD_V16QI
87
88[BCDADD_EQ, __builtin_bcdadd_eq, __builtin_vec_bcdadd_eq]
89 signed int __builtin_vec_bcdadd_eq (vsq, vsq, const int);
90 BCDADD_EQ_V1TI
91 signed int __builtin_vec_bcdadd_eq (vuc, vuc, const int);
92 BCDADD_EQ_V16QI
93
94[BCDADD_GT, __builtin_bcdadd_gt, __builtin_vec_bcdadd_gt]
95 signed int __builtin_vec_bcdadd_gt (vsq, vsq, const int);
96 BCDADD_GT_V1TI
97 signed int __builtin_vec_bcdadd_gt (vuc, vuc, const int);
98 BCDADD_GT_V16QI
99
100[BCDADD_LT, __builtin_bcdadd_lt, __builtin_vec_bcdadd_lt]
101 signed int __builtin_vec_bcdadd_lt (vsq, vsq, const int);
102 BCDADD_LT_V1TI
103 signed int __builtin_vec_bcdadd_lt (vuc, vuc, const int);
104 BCDADD_LT_V16QI
105
106[BCDADD_OV, __builtin_bcdadd_ov, __builtin_vec_bcdadd_ov]
107 signed int __builtin_vec_bcdadd_ov (vsq, vsq, const int);
108 BCDADD_OV_V1TI
109 signed int __builtin_vec_bcdadd_ov (vuc, vuc, const int);
110 BCDADD_OV_V16QI
111
112[BCDDIV10, __builtin_bcddiv10, __builtin_vec_bcddiv10]
113 vuc __builtin_vec_bcddiv10 (vuc);
114 BCDDIV10_V16QI
115
116[BCDINVALID, __builtin_bcdinvalid, __builtin_vec_bcdinvalid]
117 signed int __builtin_vec_bcdinvalid (vsq);
118 BCDINVALID_V1TI
119 signed int __builtin_vec_bcdinvalid (vuc);
120 BCDINVALID_V16QI
121
122[BCDMUL10, __builtin_bcdmul10, __builtin_vec_bcdmul10]
123 vuc __builtin_vec_bcdmul10 (vuc);
124 BCDMUL10_V16QI
125
126[BCDSUB, __builtin_bcdsub, __builtin_vec_bcdsub]
127 vsq __builtin_vec_bcdsub (vsq, vsq, const int);
128 BCDSUB_V1TI
129 vuc __builtin_vec_bcdsub (vuc, vuc, const int);
130 BCDSUB_V16QI
131
132[BCDSUB_EQ, __builtin_bcdsub_eq, __builtin_vec_bcdsub_eq]
133 signed int __builtin_vec_bcdsub_eq (vsq, vsq, const int);
134 BCDSUB_EQ_V1TI
135 signed int __builtin_vec_bcdsub_eq (vuc, vuc, const int);
136 BCDSUB_EQ_V16QI
137
138[BCDSUB_GE, __builtin_bcdsub_ge, __builtin_vec_bcdsub_ge]
139 signed int __builtin_vec_bcdsub_ge (vsq, vsq, const int);
140 BCDSUB_GE_V1TI
141 signed int __builtin_vec_bcdsub_ge (vuc, vuc, const int);
142 BCDSUB_GE_V16QI
143
144[BCDSUB_GT, __builtin_bcdsub_gt, __builtin_vec_bcdsub_gt]
145 signed int __builtin_vec_bcdsub_gt (vsq, vsq, const int);
146 BCDSUB_GT_V1TI
147 signed int __builtin_vec_bcdsub_gt (vuc, vuc, const int);
148 BCDSUB_GT_V16QI
149
150[BCDSUB_LE, __builtin_bcdsub_le, __builtin_vec_bcdsub_le]
151 signed int __builtin_vec_bcdsub_le (vsq, vsq, const int);
152 BCDSUB_LE_V1TI
153 signed int __builtin_vec_bcdsub_le (vuc, vuc, const int);
154 BCDSUB_LE_V16QI
155
156[BCDSUB_LT, __builtin_bcdsub_lt, __builtin_vec_bcdsub_lt]
157 signed int __builtin_vec_bcdsub_lt (vsq, vsq, const int);
158 BCDSUB_LT_V1TI
159 signed int __builtin_vec_bcdsub_lt (vuc, vuc, const int);
160 BCDSUB_LT_V16QI
161
162[BCDSUB_OV, __builtin_bcdsub_ov, __builtin_vec_bcdsub_ov]
163 signed int __builtin_vec_bcdsub_ov (vsq, vsq, const int);
164 BCDSUB_OV_V1TI
165 signed int __builtin_vec_bcdsub_ov (vuc, vuc, const int);
166 BCDSUB_OV_V16QI
167
168[BCD2DFP, __builtin_bcd2dfp, __builtin_vec_denb2dfp]
169 _Decimal128 __builtin_vec_denb2dfp (vuc);
170 DENB2DFP_V16QI
171
172[CRYPTO_PERMXOR, SKIP, __builtin_crypto_vpermxor]
173 vuc __builtin_crypto_vpermxor (vuc, vuc, vuc);
174 VPERMXOR_V16QI
175 vus __builtin_crypto_vpermxor (vus, vus, vus);
176 VPERMXOR_V8HI
177 vui __builtin_crypto_vpermxor (vui, vui, vui);
178 VPERMXOR_V4SI
179 vull __builtin_crypto_vpermxor (vull, vull, vull);
180 VPERMXOR_V2DI
181
182[CRYPTO_PMSUM, SKIP, __builtin_crypto_vpmsum]
183 vuc __builtin_crypto_vpmsum (vuc, vuc);
184 VPMSUMB VPMSUMB_C
185 vus __builtin_crypto_vpmsum (vus, vus);
186 VPMSUMH VPMSUMH_C
187 vui __builtin_crypto_vpmsum (vui, vui);
188 VPMSUMW VPMSUMW_C
189 vull __builtin_crypto_vpmsum (vull, vull);
190 VPMSUMD VPMSUMD_C
191
192[SCAL_CMPB, SKIP, __builtin_cmpb]
193 unsigned int __builtin_cmpb (unsigned int, unsigned int);
194 CMPB_32
195 unsigned long long __builtin_cmpb (unsigned long long, unsigned long long);
196 CMPB
197
4a720a95
BS
198[VEC_ABS, vec_abs, __builtin_vec_abs]
199 vsc __builtin_vec_abs (vsc);
200 ABS_V16QI
201 vss __builtin_vec_abs (vss);
202 ABS_V8HI
e2693a72
BS
203 vsi __builtin_vec_abs (vsi);
204 ABS_V4SI
205 vsll __builtin_vec_abs (vsll);
206 ABS_V2DI
207 vf __builtin_vec_abs (vf);
208 ABS_V4SF
209 vd __builtin_vec_abs (vd);
210 XVABSDP
211
7e836079 212[VEC_ABSD, vec_absd, __builtin_vec_vadu]
e2693a72
BS
213 vuc __builtin_vec_vadu (vuc, vuc);
214 VADUB
215 vus __builtin_vec_vadu (vus, vus);
216 VADUH
217 vui __builtin_vec_vadu (vui, vui);
218 VADUW
219
220[VEC_ABSS, vec_abss, __builtin_vec_abss]
221 vsc __builtin_vec_abss (vsc);
222 ABSS_V16QI
223 vss __builtin_vec_abss (vss);
224 ABSS_V8HI
225 vsi __builtin_vec_abss (vsi);
226 ABSS_V4SI
227
228[VEC_ADD, vec_add, __builtin_vec_add]
229 vsc __builtin_vec_add (vsc, vsc);
230 VADDUBM VADDUBM_VSC
231 vuc __builtin_vec_add (vuc, vuc);
232 VADDUBM VADDUBM_VUC
233 vss __builtin_vec_add (vss, vss);
234 VADDUHM VADDUHM_VSS
235 vus __builtin_vec_add (vus, vus);
236 VADDUHM VADDUHM_VUS
237 vsi __builtin_vec_add (vsi, vsi);
238 VADDUWM VADDUWM_VSI
239 vui __builtin_vec_add (vui, vui);
240 VADDUWM VADDUWM_VUI
241 vsll __builtin_vec_add (vsll, vsll);
242 VADDUDM VADDUDM_VSLL
243 vull __builtin_vec_add (vull, vull);
244 VADDUDM VADDUDM_VULL
245 vsq __builtin_vec_add (vsq, vsq);
246 VADDUQM VADDUQM_VSQ
247 vuq __builtin_vec_add (vuq, vuq);
248 VADDUQM VADDUQM_VUQ
249 vf __builtin_vec_add (vf, vf);
250 VADDFP
251 vd __builtin_vec_add (vd, vd);
252 XVADDDP
253; The following variants are deprecated.
254 vsc __builtin_vec_add (vbc, vsc);
255 VADDUBM VADDUBM_VBC_VSC
256 vsc __builtin_vec_add (vsc, vbc);
257 VADDUBM VADDUBM_VSC_VBC
258 vuc __builtin_vec_add (vbc, vuc);
259 VADDUBM VADDUBM_VBC_VUC
260 vuc __builtin_vec_add (vuc, vbc);
261 VADDUBM VADDUBM_VUC_VBC
262 vss __builtin_vec_add (vbs, vss);
263 VADDUHM VADDUHM_VBS_VSS
264 vss __builtin_vec_add (vss, vbs);
265 VADDUHM VADDUHM_VSS_VBS
266 vus __builtin_vec_add (vbs, vus);
267 VADDUHM VADDUHM_VBS_VUS
268 vus __builtin_vec_add (vus, vbs);
269 VADDUHM VADDUHM_VUS_VBS
270 vsi __builtin_vec_add (vbi, vsi);
271 VADDUWM VADDUWM_VBI_VSI
272 vsi __builtin_vec_add (vsi, vbi);
273 VADDUWM VADDUWM_VSI_VBI
274 vui __builtin_vec_add (vbi, vui);
275 VADDUWM VADDUWM_VBI_VUI
276 vui __builtin_vec_add (vui, vbi);
277 VADDUWM VADDUWM_VUI_VBI
278 vsll __builtin_vec_add (vbll, vsll);
279 VADDUDM VADDUDM_VBLL_VSLL
280 vsll __builtin_vec_add (vsll, vbll);
281 VADDUDM VADDUDM_VSLL_VBLL
282 vull __builtin_vec_add (vbll, vull);
283 VADDUDM VADDUDM_VBLL_VULL
284 vull __builtin_vec_add (vull, vbll);
285 VADDUDM VADDUDM_VULL_VBLL
286
287[VEC_ADDC, vec_addc, __builtin_vec_addc]
288 vsi __builtin_vec_addc (vsi, vsi);
289 VADDCUW VADDCUW_VSI
290 vui __builtin_vec_addc (vui, vui);
291 VADDCUW VADDCUW_VUI
292 vsq __builtin_vec_addc (vsq, vsq);
293 VADDCUQ VADDCUQ_VSQ
294 vuq __builtin_vec_addc (vuq, vuq);
295 VADDCUQ VADDCUQ_VUQ
296
297; TODO: Note that the entry for VEC_ADDE currently gets ignored in
298; altivec_resolve_overloaded_builtin. Revisit whether we can remove
299; that. We still need to register the legal builtin forms here.
300[VEC_ADDE, vec_adde, __builtin_vec_adde]
301 vsq __builtin_vec_adde (vsq, vsq, vsq);
302 VADDEUQM VADDEUQM_VSQ
303 vuq __builtin_vec_adde (vuq, vuq, vuq);
304 VADDEUQM VADDEUQM_VUQ
305
306; TODO: Note that the entry for VEC_ADDEC currently gets ignored in
307; altivec_resolve_overloaded_builtin. Revisit whether we can remove
308; that. We still need to register the legal builtin forms here.
309[VEC_ADDEC, vec_addec, __builtin_vec_addec]
310 vsq __builtin_vec_addec (vsq, vsq, vsq);
311 VADDECUQ VADDECUQ_VSQ
312 vuq __builtin_vec_addec (vuq, vuq, vuq);
313 VADDECUQ VADDECUQ_VUQ
314
315[VEC_ADDS, vec_adds, __builtin_vec_adds]
316 vuc __builtin_vec_adds (vuc, vuc);
317 VADDUBS
318 vsc __builtin_vec_adds (vsc, vsc);
319 VADDSBS
320 vus __builtin_vec_adds (vus, vus);
321 VADDUHS
322 vss __builtin_vec_adds (vss, vss);
323 VADDSHS
324 vui __builtin_vec_adds (vui, vui);
325 VADDUWS
326 vsi __builtin_vec_adds (vsi, vsi);
327 VADDSWS
328; The following variants are deprecated.
329 vuc __builtin_vec_adds (vbc, vuc);
330 VADDUBS VADDUBS_BU
331 vuc __builtin_vec_adds (vuc, vbc);
332 VADDUBS VADDUBS_UB
333 vsc __builtin_vec_adds (vbc, vsc);
334 VADDSBS VADDSBS_BS
335 vsc __builtin_vec_adds (vsc, vbc);
336 VADDSBS VADDSBS_SB
337 vus __builtin_vec_adds (vbs, vus);
338 VADDUHS VADDUHS_BU
339 vus __builtin_vec_adds (vus, vbs);
340 VADDUHS VADDUHS_UB
341 vss __builtin_vec_adds (vbs, vss);
342 VADDSHS VADDSHS_BS
343 vss __builtin_vec_adds (vss, vbs);
344 VADDSHS VADDSHS_SB
345 vui __builtin_vec_adds (vbi, vui);
346 VADDUWS VADDUWS_BU
347 vui __builtin_vec_adds (vui, vbi);
348 VADDUWS VADDUWS_UB
349 vsi __builtin_vec_adds (vbi, vsi);
350 VADDSWS VADDSWS_BS
351 vsi __builtin_vec_adds (vsi, vbi);
352 VADDSWS VADDSWS_SB
353
354[VEC_AND, vec_and, __builtin_vec_and]
355 vsc __builtin_vec_and (vsc, vsc);
356 VAND_V16QI
357 vuc __builtin_vec_and (vuc, vuc);
358 VAND_V16QI_UNS VAND_VUC
359 vbc __builtin_vec_and (vbc, vbc);
360 VAND_V16QI_UNS VAND_VBC
361 vss __builtin_vec_and (vss, vss);
362 VAND_V8HI
363 vus __builtin_vec_and (vus, vus);
364 VAND_V8HI_UNS VAND_VUS
365 vbs __builtin_vec_and (vbs, vbs);
366 VAND_V8HI_UNS VAND_VBS
367 vsi __builtin_vec_and (vsi, vsi);
368 VAND_V4SI
369 vui __builtin_vec_and (vui, vui);
370 VAND_V4SI_UNS VAND_VUI
371 vbi __builtin_vec_and (vbi, vbi);
372 VAND_V4SI_UNS VAND_VBI
373 vsll __builtin_vec_and (vsll, vsll);
374 VAND_V2DI
375 vull __builtin_vec_and (vull, vull);
376 VAND_V2DI_UNS VAND_VULL
377 vbll __builtin_vec_and (vbll, vbll);
378 VAND_V2DI_UNS VAND_VBLL
379 vf __builtin_vec_and (vf, vf);
380 VAND_V4SF
381 vd __builtin_vec_and (vd, vd);
382 VAND_V2DF
383; The following variants are deprecated.
384 vsc __builtin_vec_and (vsc, vbc);
385 VAND_V16QI VAND_VSC_VBC
386 vsc __builtin_vec_and (vbc, vsc);
387 VAND_V16QI VAND_VBC_VSC
388 vuc __builtin_vec_and (vuc, vbc);
389 VAND_V16QI_UNS VAND_VUC_VBC
390 vuc __builtin_vec_and (vbc, vuc);
391 VAND_V16QI_UNS VAND_VBC_VUC
392 vss __builtin_vec_and (vss, vbs);
393 VAND_V8HI VAND_VSS_VBS
394 vss __builtin_vec_and (vbs, vss);
395 VAND_V8HI VAND_VBS_VSS
396 vus __builtin_vec_and (vus, vbs);
397 VAND_V8HI_UNS VAND_VUS_VBS
398 vus __builtin_vec_and (vbs, vus);
399 VAND_V8HI_UNS VAND_VBS_VUS
400 vsi __builtin_vec_and (vsi, vbi);
401 VAND_V4SI VAND_VSI_VBI
402 vsi __builtin_vec_and (vbi, vsi);
403 VAND_V4SI VAND_VBI_VSI
404 vui __builtin_vec_and (vui, vbi);
405 VAND_V4SI_UNS VAND_VUI_VBI
406 vui __builtin_vec_and (vbi, vui);
407 VAND_V4SI_UNS VAND_VBI_VUI
408 vsll __builtin_vec_and (vsll, vbll);
409 VAND_V2DI VAND_VSLL_VBLL
410 vsll __builtin_vec_and (vbll, vsll);
411 VAND_V2DI VAND_VBLL_VSLL
412 vull __builtin_vec_and (vull, vbll);
413 VAND_V2DI_UNS VAND_VULL_VBLL
414 vull __builtin_vec_and (vbll, vull);
415 VAND_V2DI_UNS VAND_VBLL_VULL
416 vf __builtin_vec_and (vf, vbi);
417 VAND_V4SF VAND_VF_VBI
418 vf __builtin_vec_and (vbi, vf);
419 VAND_V4SF VAND_VBI_VF
420 vd __builtin_vec_and (vd, vbll);
421 VAND_V2DF VAND_VD_VBLL
422 vd __builtin_vec_and (vbll, vd);
423 VAND_V2DF VAND_VBLL_VD
424
425[VEC_ANDC, vec_andc, __builtin_vec_andc]
426 vbc __builtin_vec_andc (vbc, vbc);
427 VANDC_V16QI_UNS VANDC_VBC
428 vsc __builtin_vec_andc (vsc, vsc);
429 VANDC_V16QI
430 vuc __builtin_vec_andc (vuc, vuc);
431 VANDC_V16QI_UNS VANDC_VUC
432 vbs __builtin_vec_andc (vbs, vbs);
433 VANDC_V8HI_UNS VANDC_VBS
434 vss __builtin_vec_andc (vss, vss);
435 VANDC_V8HI
436 vus __builtin_vec_andc (vus, vus);
437 VANDC_V8HI_UNS VANDC_VUS
438 vbi __builtin_vec_andc (vbi, vbi);
439 VANDC_V4SI_UNS VANDC_VBI
440 vsi __builtin_vec_andc (vsi, vsi);
441 VANDC_V4SI
442 vui __builtin_vec_andc (vui, vui);
443 VANDC_V4SI_UNS VANDC_VUI
444 vbll __builtin_vec_andc (vbll, vbll);
445 VANDC_V2DI_UNS VANDC_VBLL
446 vsll __builtin_vec_andc (vsll, vsll);
447 VANDC_V2DI
448 vull __builtin_vec_andc (vull, vull);
449 VANDC_V2DI_UNS VANDC_VULL
450 vf __builtin_vec_andc (vf, vf);
451 VANDC_V4SF
452 vd __builtin_vec_andc (vd, vd);
453 VANDC_V2DF
454; The following variants are deprecated.
455 vsc __builtin_vec_andc (vsc, vbc);
456 VANDC_V16QI VANDC_VSC_VBC
457 vsc __builtin_vec_andc (vbc, vsc);
458 VANDC_V16QI VANDC_VBC_VSC
459 vuc __builtin_vec_andc (vuc, vbc);
460 VANDC_V16QI_UNS VANDC_VUC_VBC
461 vuc __builtin_vec_andc (vbc, vuc);
462 VANDC_V16QI_UNS VANDC_VBC_VUC
463 vss __builtin_vec_andc (vss, vbs);
464 VANDC_V8HI VANDC_VSS_VBS
465 vss __builtin_vec_andc (vbs, vss);
466 VANDC_V8HI VANDC_VBS_VSS
467 vus __builtin_vec_andc (vus, vbs);
468 VANDC_V8HI_UNS VANDC_VUS_VBS
469 vus __builtin_vec_andc (vbs, vus);
470 VANDC_V8HI_UNS VANDC_VBS_VUS
471 vsi __builtin_vec_andc (vsi, vbi);
472 VANDC_V4SI VANDC_VSI_VBI
473 vsi __builtin_vec_andc (vbi, vsi);
474 VANDC_V4SI VANDC_VBI_VSI
475 vui __builtin_vec_andc (vui, vbi);
476 VANDC_V4SI_UNS VANDC_VUI_VBI
477 vui __builtin_vec_andc (vbi, vui);
478 VANDC_V4SI_UNS VANDC_VBI_VUI
479 vsll __builtin_vec_andc (vsll, vbll);
480 VANDC_V2DI VANDC_VSLL_VBLL
481 vsll __builtin_vec_andc (vbll, vsll);
482 VANDC_V2DI VANDC_VBLL_VSLL
483 vull __builtin_vec_andc (vull, vbll);
484 VANDC_V2DI_UNS VANDC_VULL_VBLL
485 vull __builtin_vec_andc (vbll, vull);
486 VANDC_V2DI_UNS VANDC_VBLL_VULL
487 vf __builtin_vec_andc (vf, vbi);
488 VANDC_V4SF VANDC_VF_VBI
489 vf __builtin_vec_andc (vbi, vf);
490 VANDC_V4SF VANDC_VBI_VF
491 vd __builtin_vec_andc (vd, vbll);
492 VANDC_V2DF VANDC_VD_VBLL
493 vd __builtin_vec_andc (vbll, vd);
494 VANDC_V2DF VANDC_VBLL_VD
495
496[VEC_AVG, vec_avg, __builtin_vec_avg]
497 vsc __builtin_vec_avg (vsc, vsc);
498 VAVGSB
499 vuc __builtin_vec_avg (vuc, vuc);
500 VAVGUB
501 vss __builtin_vec_avg (vss, vss);
502 VAVGSH
503 vus __builtin_vec_avg (vus, vus);
504 VAVGUH
505 vsi __builtin_vec_avg (vsi, vsi);
506 VAVGSW
507 vui __builtin_vec_avg (vui, vui);
508 VAVGUW
509
7e836079 510[VEC_BLENDV, vec_blendv, __builtin_vec_xxblend]
e2693a72
BS
511 vsc __builtin_vec_xxblend (vsc, vsc, vuc);
512 VXXBLEND_V16QI VXXBLEND_VSC
513 vuc __builtin_vec_xxblend (vuc, vuc, vuc);
514 VXXBLEND_V16QI VXXBLEND_VUC
515 vss __builtin_vec_xxblend (vss, vss, vus);
516 VXXBLEND_V8HI VXXBLEND_VSS
517 vus __builtin_vec_xxblend (vus, vus, vus);
518 VXXBLEND_V8HI VXXBLEND_VUS
519 vsi __builtin_vec_xxblend (vsi, vsi, vui);
520 VXXBLEND_V4SI VXXBLEND_VSI
521 vui __builtin_vec_xxblend (vui, vui, vui);
522 VXXBLEND_V4SI VXXBLEND_VUI
523 vsll __builtin_vec_xxblend (vsll, vsll, vull);
524 VXXBLEND_V2DI VXXBLEND_VSLL
525 vull __builtin_vec_xxblend (vull, vull, vull);
526 VXXBLEND_V2DI VXXBLEND_VULL
527 vf __builtin_vec_xxblend (vf, vf, vui);
528 VXXBLEND_V4SF
529 vd __builtin_vec_xxblend (vd, vd, vull);
530 VXXBLEND_V2DF
531
7e836079 532[VEC_BPERM, vec_bperm, __builtin_vec_vbperm_api]
e2693a72
BS
533 vull __builtin_vec_vbperm_api (vull, vuc);
534 VBPERMD VBPERMD_VULL
535 vull __builtin_vec_vbperm_api (vuq, vuc);
536 VBPERMQ VBPERMQ_VUQ
537 vuc __builtin_vec_vbperm_api (vuc, vuc);
538 VBPERMQ2 VBPERMQ2_U
539 vsc __builtin_vec_vbperm_api (vsc, vsc);
540 VBPERMQ2 VBPERMQ2_S
541
542[VEC_CEIL, vec_ceil, __builtin_vec_ceil]
543 vf __builtin_vec_ceil (vf);
544 VRFIP
545 vd __builtin_vec_ceil (vd);
546 XVRDPIP
547
7e836079 548[VEC_CFUGE, vec_cfuge, __builtin_vec_cfuge]
e2693a72
BS
549 vull __builtin_vec_cfuge (vull, vull);
550 VCFUGED
551
7e836079 552[VEC_CIPHER_BE, vec_cipher_be, __builtin_vec_vcipher_be]
e2693a72
BS
553 vuc __builtin_vec_vcipher_be (vuc, vuc);
554 VCIPHER_BE
555
7e836079 556[VEC_CIPHERLAST_BE, vec_cipherlast_be, __builtin_vec_vcipherlast_be]
e2693a72
BS
557 vuc __builtin_vec_vcipherlast_be (vuc, vuc);
558 VCIPHERLAST_BE
559
7e836079 560[VEC_CLRL, vec_clrl, __builtin_vec_clrl]
e2693a72
BS
561 vsc __builtin_vec_clrl (vsc, unsigned int);
562 VCLRLB VCLRLB_S
563 vuc __builtin_vec_clrl (vuc, unsigned int);
564 VCLRLB VCLRLB_U
565
7e836079 566[VEC_CLRR, vec_clrr, __builtin_vec_clrr]
e2693a72
BS
567 vsc __builtin_vec_clrr (vsc, unsigned int);
568 VCLRRB VCLRRB_S
569 vuc __builtin_vec_clrr (vuc, unsigned int);
570 VCLRRB VCLRRB_U
571
572; We skip generating a #define because of the C-versus-C++ complexity
573; in altivec.h. Look there for the template-y details.
574[VEC_CMPAE_P, SKIP, __builtin_vec_vcmpae_p]
575 signed int __builtin_vec_vcmpae_p (vsc, vsc);
576 VCMPAEB_P VCMPAEB_VSC_P
577 signed int __builtin_vec_vcmpae_p (vuc, vuc);
578 VCMPAEB_P VCMPAEB_VUC_P
579 signed int __builtin_vec_vcmpae_p (vbc, vbc);
580 VCMPAEB_P VCMPAEB_VBC_P
581 signed int __builtin_vec_vcmpae_p (vss, vss);
582 VCMPAEH_P VCMPAEH_VSS_P
583 signed int __builtin_vec_vcmpae_p (vus, vus);
584 VCMPAEH_P VCMPAEH_VUS_P
585 signed int __builtin_vec_vcmpae_p (vbs, vbs);
586 VCMPAEH_P VCMPAEH_VBS_P
587 signed int __builtin_vec_vcmpae_p (vp, vp);
588 VCMPAEH_P VCMPAEH_VP_P
589 signed int __builtin_vec_vcmpae_p (vsi, vsi);
590 VCMPAEW_P VCMPAEW_VSI_P
591 signed int __builtin_vec_vcmpae_p (vui, vui);
592 VCMPAEW_P VCMPAEW_VUI_P
593 signed int __builtin_vec_vcmpae_p (vbi, vbi);
594 VCMPAEW_P VCMPAEW_VBI_P
595 signed int __builtin_vec_vcmpae_p (vsll, vsll);
596 VCMPAED_P VCMPAED_VSLL_P
597 signed int __builtin_vec_vcmpae_p (vull, vull);
598 VCMPAED_P VCMPAED_VULL_P
599 signed int __builtin_vec_vcmpae_p (vbll, vbll);
600 VCMPAED_P VCMPAED_VBLL_P
601 signed int __builtin_vec_vcmpae_p (vsq, vsq);
602 VCMPAET_P VCMPAET_VSQ_P
603 signed int __builtin_vec_vcmpae_p (vuq, vuq);
604 VCMPAET_P VCMPAET_VUQ_P
605 signed int __builtin_vec_vcmpae_p (vf, vf);
606 VCMPAEFP_P
607 signed int __builtin_vec_vcmpae_p (vd, vd);
608 VCMPAEDP_P
609; The following variants are deprecated.
610 signed int __builtin_vec_vcmpae_p (signed int, vbc, vuc);
611 VCMPAEB_P VCMPAEB_P_BU
612 signed int __builtin_vec_vcmpae_p (signed int, vuc, vbc);
613 VCMPAEB_P VCMPAEB_P_UB
614 signed int __builtin_vec_vcmpae_p (signed int, vbc, vsc);
615 VCMPAEB_P VCMPAEB_P_BS
616 signed int __builtin_vec_vcmpae_p (signed int, vsc, vbc);
617 VCMPAEB_P VCMPAEB_P_SB
618 signed int __builtin_vec_vcmpae_p (signed int, vbs, vus);
619 VCMPAEH_P VCMPAEH_P_BU
620 signed int __builtin_vec_vcmpae_p (signed int, vus, vbs);
621 VCMPAEH_P VCMPAEH_P_UB
622 signed int __builtin_vec_vcmpae_p (signed int, vbs, vss);
623 VCMPAEH_P VCMPAEH_P_BS
624 signed int __builtin_vec_vcmpae_p (signed int, vss, vbs);
625 VCMPAEH_P VCMPAEH_P_SB
626 signed int __builtin_vec_vcmpae_p (signed int, vbi, vui);
627 VCMPAEW_P VCMPAEW_P_BU
628 signed int __builtin_vec_vcmpae_p (signed int, vui, vbi);
629 VCMPAEW_P VCMPAEW_P_UB
630 signed int __builtin_vec_vcmpae_p (signed int, vbi, vsi);
631 VCMPAEW_P VCMPAEW_P_BS
632 signed int __builtin_vec_vcmpae_p (signed int, vsi, vbi);
633 VCMPAEW_P VCMPAEW_P_SB
634 signed int __builtin_vec_vcmpae_p (signed int, vbll, vull);
635 VCMPAED_P VCMPAED_P_BU
636 signed int __builtin_vec_vcmpae_p (signed int, vull, vbll);
637 VCMPAED_P VCMPAED_P_UB
638 signed int __builtin_vec_vcmpae_p (signed int, vbll, vsll);
639 VCMPAED_P VCMPAED_P_BS
640 signed int __builtin_vec_vcmpae_p (signed int, vbll, vsll);
641 VCMPAED_P VCMPAED_P_SB
642
643[VEC_CMPB, vec_cmpb, __builtin_vec_cmpb]
644 vsi __builtin_vec_cmpb (vf, vf);
645 VCMPBFP
646
647[VEC_CMPEQ, vec_cmpeq, __builtin_vec_cmpeq]
648 vbc __builtin_vec_cmpeq (vsc, vsc);
649 VCMPEQUB VCMPEQUB_VSC
650 vbc __builtin_vec_cmpeq (vuc, vuc);
651 VCMPEQUB VCMPEQUB_VUC
652 vbc __builtin_vec_cmpeq (vbc, vbc);
653 VCMPEQUB VCMPEQUB_VBC
654 vbs __builtin_vec_cmpeq (vss, vss);
655 VCMPEQUH VCMPEQUH_VSS
656 vbs __builtin_vec_cmpeq (vus, vus);
657 VCMPEQUH VCMPEQUH_VUS
658 vbs __builtin_vec_cmpeq (vbs, vbs);
659 VCMPEQUH VCMPEQUH_VBS
660 vbi __builtin_vec_cmpeq (vsi, vsi);
661 VCMPEQUW VCMPEQUW_VSI
662 vbi __builtin_vec_cmpeq (vui, vui);
663 VCMPEQUW VCMPEQUW_VUI
664 vbi __builtin_vec_cmpeq (vbi, vbi);
665 VCMPEQUW VCMPEQUW_VBI
666 vbll __builtin_vec_cmpeq (vsll, vsll);
667 VCMPEQUD VCMPEQUD_VSLL
668 vbll __builtin_vec_cmpeq (vull, vull);
669 VCMPEQUD VCMPEQUD_VULL
670 vbll __builtin_vec_cmpeq (vbll, vbll);
671 VCMPEQUD VCMPEQUD_VBLL
672 vbq __builtin_vec_cmpeq (vsq, vsq);
673 VCMPEQUT VCMPEQUT_VSQ
674 vbq __builtin_vec_cmpeq (vuq, vuq);
675 VCMPEQUT VCMPEQUT_VUQ
676 vbi __builtin_vec_cmpeq (vf, vf);
677 VCMPEQFP
678 vbll __builtin_vec_cmpeq (vd, vd);
679 XVCMPEQDP
680
681; We skip generating a #define because of the C-versus-C++ complexity
682; in altivec.h. Look there for the template-y details.
683[VEC_CMPEQ_P, SKIP, __builtin_vec_vcmpeq_p]
684 signed int __builtin_vec_vcmpeq_p (signed int, vuc, vuc);
685 VCMPEQUB_P VCMPEQUB_PU
686 signed int __builtin_vec_vcmpeq_p (signed int, vsc, vsc);
687 VCMPEQUB_P VCMPEQUB_PS
688 signed int __builtin_vec_vcmpeq_p (signed int, vbc, vbc);
689 VCMPEQUB_P VCMPEQUB_PB
690 signed int __builtin_vec_vcmpeq_p (signed int, vus, vus);
691 VCMPEQUH_P VCMPEQUH_PU
692 signed int __builtin_vec_vcmpeq_p (signed int, vss, vss);
693 VCMPEQUH_P VCMPEQUH_PS
694 signed int __builtin_vec_vcmpeq_p (signed int, vbs, vbs);
695 VCMPEQUH_P VCMPEQUH_PB
696 signed int __builtin_vec_vcmpeq_p (signed int, vp, vp);
697 VCMPEQUH_P VCMPEQUH_PP
698 signed int __builtin_vec_vcmpeq_p (signed int, vui, vui);
699 VCMPEQUW_P VCMPEQUW_PU
700 signed int __builtin_vec_vcmpeq_p (signed int, vsi, vsi);
701 VCMPEQUW_P VCMPEQUW_PS
702 signed int __builtin_vec_vcmpeq_p (signed int, vbi, vbi);
703 VCMPEQUW_P VCMPEQUW_PB
704 signed int __builtin_vec_vcmpeq_p (signed int, vull, vull);
705 VCMPEQUD_P VCMPEQUD_PU
706 signed int __builtin_vec_vcmpeq_p (signed int, vsll, vsll);
707 VCMPEQUD_P VCMPEQUD_PS
708 signed int __builtin_vec_vcmpeq_p (signed int, vbll, vbll);
709 VCMPEQUD_P VCMPEQUD_PB
710 signed int __builtin_vec_vcmpeq_p (signed int, vsq, vsq);
711 VCMPEQUT_P VCMPEQUT_P_VSQ
712 signed int __builtin_vec_vcmpeq_p (signed int, vuq, vuq);
713 VCMPEQUT_P VCMPEQUT_P_VUQ
714 signed int __builtin_vec_vcmpeq_p (signed int, vf, vf);
715 VCMPEQFP_P
716 signed int __builtin_vec_vcmpeq_p (signed int, vd, vd);
717 XVCMPEQDP_P
718; The following variants are deprecated.
719 signed int __builtin_vec_vcmpeq_p (signed int, vbc, vuc);
720 VCMPEQUB_P VCMPEQUB_P_BU
721 signed int __builtin_vec_vcmpeq_p (signed int, vuc, vbc);
722 VCMPEQUB_P VCMPEQUB_P_UB
723 signed int __builtin_vec_vcmpeq_p (signed int, vbc, vsc);
724 VCMPEQUB_P VCMPEQUB_P_BS
725 signed int __builtin_vec_vcmpeq_p (signed int, vsc, vbc);
726 VCMPEQUB_P VCMPEQUB_P_SB
727 signed int __builtin_vec_vcmpeq_p (signed int, vbs, vus);
728 VCMPEQUH_P VCMPEQUH_P_BU
729 signed int __builtin_vec_vcmpeq_p (signed int, vus, vbs);
730 VCMPEQUH_P VCMPEQUH_P_UB
731 signed int __builtin_vec_vcmpeq_p (signed int, vbs, vss);
732 VCMPEQUH_P VCMPEQUH_P_BS
733 signed int __builtin_vec_vcmpeq_p (signed int, vss, vbs);
734 VCMPEQUH_P VCMPEQUH_P_SB
735 signed int __builtin_vec_vcmpeq_p (signed int, vbi, vui);
736 VCMPEQUW_P VCMPEQUW_P_BU
737 signed int __builtin_vec_vcmpeq_p (signed int, vui, vbi);
738 VCMPEQUW_P VCMPEQUW_P_UB
739 signed int __builtin_vec_vcmpeq_p (signed int, vbi, vsi);
740 VCMPEQUW_P VCMPEQUW_P_BS
741 signed int __builtin_vec_vcmpeq_p (signed int, vsi, vbi);
742 VCMPEQUW_P VCMPEQUW_P_SB
743 signed int __builtin_vec_vcmpeq_p (signed int, vbll, vull);
744 VCMPEQUD_P VCMPEQUD_P_BU
745 signed int __builtin_vec_vcmpeq_p (signed int, vull, vbll);
746 VCMPEQUD_P VCMPEQUD_P_UB
747 signed int __builtin_vec_vcmpeq_p (signed int, vbll, vsll);
748 VCMPEQUD_P VCMPEQUD_P_BS
749 signed int __builtin_vec_vcmpeq_p (signed int, vbll, vsll);
750 VCMPEQUD_P VCMPEQUD_P_SB
751
752[VEC_CMPEQB, SKIP, __builtin_byte_in_set]
753 signed int __builtin_byte_in_set (unsigned int, unsigned long long);
754 CMPEQB
755
756[VEC_CMPGE, vec_cmpge, __builtin_vec_cmpge]
757 vbc __builtin_vec_cmpge (vsc, vsc);
758 CMPGE_16QI CMPGE_16QI_VSC
759 vbc __builtin_vec_cmpge (vuc, vuc);
760 CMPGE_U16QI CMPGE_16QI_VUC
761 vbs __builtin_vec_cmpge (vss, vss);
762 CMPGE_8HI CMPGE_8HI_VSS
763 vbs __builtin_vec_cmpge (vus, vus);
764 CMPGE_U8HI CMPGE_8HI_VUS
765 vbi __builtin_vec_cmpge (vsi, vsi);
766 CMPGE_4SI CMPGE_4SI_VSI
767 vbi __builtin_vec_cmpge (vui, vui);
768 CMPGE_U4SI CMPGE_4SI_VUI
769 vbll __builtin_vec_cmpge (vsll, vsll);
770 CMPGE_2DI CMPGE_2DI_VSLL
771 vbll __builtin_vec_cmpge (vull, vull);
772 CMPGE_U2DI CMPGE_2DI_VULL
773 vbq __builtin_vec_cmpge (vsq, vsq);
774 CMPGE_1TI
775 vbq __builtin_vec_cmpge (vuq, vuq);
776 CMPGE_U1TI
777 vbi __builtin_vec_cmpge (vf, vf);
778 VCMPGEFP
779 vbll __builtin_vec_cmpge (vd, vd);
780 XVCMPGEDP
781
782; We skip generating a #define because of the C-versus-C++ complexity
783; in altivec.h. Look there for the template-y details.
784; See altivec_build_resolved_builtin for how we deal with VEC_CMPGE_P.
785; It's quite strange and horrible!
786[VEC_CMPGE_P, SKIP, __builtin_vec_vcmpge_p]
787 signed int __builtin_vec_vcmpge_p (signed int, vuc, vuc);
788 VCMPGTUB_P VCMPGTUB_PR
789 signed int __builtin_vec_vcmpge_p (signed int, vsc, vsc);
790 VCMPGTSB_P VCMPGTSB_PR
791 signed int __builtin_vec_vcmpge_p (signed int, vus, vus);
792 VCMPGTUH_P VCMPGTUH_PR
793 signed int __builtin_vec_vcmpge_p (signed int, vss, vss);
794 VCMPGTSH_P VCMPGTSH_PR
795 signed int __builtin_vec_vcmpge_p (signed int, vui, vui);
796 VCMPGTUW_P VCMPGTUW_PR
797 signed int __builtin_vec_vcmpge_p (signed int, vsi, vsi);
798 VCMPGTSW_P VCMPGTSW_PR
799 signed int __builtin_vec_vcmpge_p (signed int, vull, vull);
800 VCMPGTUD_P VCMPGTUD_PR
801 signed int __builtin_vec_vcmpge_p (signed int, vsll, vsll);
802 VCMPGTSD_P VCMPGTSD_PR
803 signed int __builtin_vec_vcmpge_p (signed int, vuq, vuq);
804 VCMPGTUT_P VCMPGTUT_PR
805 signed int __builtin_vec_vcmpge_p (signed int, vsq, vsq);
806 VCMPGTST_P VCMPGTST_PR
807 signed int __builtin_vec_vcmpge_p (signed int, vf, vf);
808 VCMPGEFP_P
809 signed int __builtin_vec_vcmpge_p (signed int, vd, vd);
810 XVCMPGEDP_P
811; The following variants are deprecated.
812 signed int __builtin_vec_vcmpge_p (signed int, vbc, vuc);
813 VCMPGTUB_P VCMPGTUB_PR_BU
814 signed int __builtin_vec_vcmpge_p (signed int, vuc, vbc);
815 VCMPGTUB_P VCMPGTUB_PR_UB
816 signed int __builtin_vec_vcmpge_p (signed int, vbc, vsc);
817 VCMPGTSB_P VCMPGTSB_PR_BS
818 signed int __builtin_vec_vcmpge_p (signed int, vsc, vbc);
819 VCMPGTSB_P VCMPGTSB_PR_SB
820 signed int __builtin_vec_vcmpge_p (signed int, vbs, vus);
821 VCMPGTUH_P VCMPGTUH_PR_BU
822 signed int __builtin_vec_vcmpge_p (signed int, vus, vbs);
823 VCMPGTUH_P VCMPGTUH_PR_UB
824 signed int __builtin_vec_vcmpge_p (signed int, vbs, vss);
825 VCMPGTSH_P VCMPGTSH_PR_BS
826 signed int __builtin_vec_vcmpge_p (signed int, vss, vbs);
827 VCMPGTSH_P VCMPGTSH_PR_SB
828 signed int __builtin_vec_vcmpge_p (signed int, vbi, vui);
829 VCMPGTUW_P VCMPGTUW_PR_BU
830 signed int __builtin_vec_vcmpge_p (signed int, vui, vbi);
831 VCMPGTUW_P VCMPGTUW_PR_UB
832 signed int __builtin_vec_vcmpge_p (signed int, vbi, vsi);
833 VCMPGTSW_P VCMPGTSW_PR_BS
834 signed int __builtin_vec_vcmpge_p (signed int, vsi, vbi);
835 VCMPGTSW_P VCMPGTSW_PR_SB
836 signed int __builtin_vec_vcmpge_p (signed int, vbll, vull);
837 VCMPGTUD_P VCMPGTUD_PR_BU
838 signed int __builtin_vec_vcmpge_p (signed int, vull, vbll);
839 VCMPGTUD_P VCMPGTUD_PR_UB
840 signed int __builtin_vec_vcmpge_p (signed int, vbll, vsll);
841 VCMPGTSD_P VCMPGTSD_PR_BS
842 signed int __builtin_vec_vcmpge_p (signed int, vsll, vbll);
843 VCMPGTSD_P VCMPGTSD_PR_SB
844
845[VEC_CMPGT, vec_cmpgt, __builtin_vec_cmpgt]
846 vbc __builtin_vec_cmpgt (vsc, vsc);
847 VCMPGTSB
848 vbc __builtin_vec_cmpgt (vuc, vuc);
849 VCMPGTUB
850 vbs __builtin_vec_cmpgt (vss, vss);
851 VCMPGTSH
852 vbs __builtin_vec_cmpgt (vus, vus);
853 VCMPGTUH
854 vbi __builtin_vec_cmpgt (vsi, vsi);
855 VCMPGTSW
856 vbi __builtin_vec_cmpgt (vui, vui);
857 VCMPGTUW
858 vbll __builtin_vec_cmpgt (vsll, vsll);
859 VCMPGTSD
860 vbll __builtin_vec_cmpgt (vull, vull);
861 VCMPGTUD
862 vbq __builtin_vec_cmpgt (vsq, vsq);
863 VCMPGTST
864 vbq __builtin_vec_cmpgt (vuq, vuq);
865 VCMPGTUT
866 vbi __builtin_vec_cmpgt (vf, vf);
867 VCMPGTFP
868 vbll __builtin_vec_cmpgt (vd, vd);
869 XVCMPGTDP
870
871; We skip generating a #define because of the C-versus-C++ complexity
872; in altivec.h. Look there for the template-y details.
873[VEC_CMPGT_P, SKIP, __builtin_vec_vcmpgt_p]
874 signed int __builtin_vec_vcmpgt_p (signed int, vuc, vuc);
875 VCMPGTUB_P
876 signed int __builtin_vec_vcmpgt_p (signed int, vsc, vsc);
877 VCMPGTSB_P
878 signed int __builtin_vec_vcmpgt_p (signed int, vus, vus);
879 VCMPGTUH_P
880 signed int __builtin_vec_vcmpgt_p (signed int, vss, vss);
881 VCMPGTSH_P
882 signed int __builtin_vec_vcmpgt_p (signed int, vui, vui);
883 VCMPGTUW_P
884 signed int __builtin_vec_vcmpgt_p (signed int, vsi, vsi);
885 VCMPGTSW_P
886 signed int __builtin_vec_vcmpgt_p (signed int, vull, vull);
887 VCMPGTUD_P
888 signed int __builtin_vec_vcmpgt_p (signed int, vsll, vsll);
889 VCMPGTSD_P
890 signed int __builtin_vec_vcmpgt_p (signed int, vuq, vuq);
891 VCMPGTUT_P
892 signed int __builtin_vec_vcmpgt_p (signed int, vsq, vsq);
893 VCMPGTST_P
894 signed int __builtin_vec_vcmpgt_p (signed int, vf, vf);
895 VCMPGTFP_P
896 signed int __builtin_vec_vcmpgt_p (signed int, vd, vd);
897 XVCMPGTDP_P
898; The following variants are deprecated.
899 signed int __builtin_vec_vcmpgt_p (signed int, vbc, vuc);
900 VCMPGTUB_P VCMPGTUB_P_BU
901 signed int __builtin_vec_vcmpgt_p (signed int, vuc, vbc);
902 VCMPGTUB_P VCMPGTUB_P_UB
903 signed int __builtin_vec_vcmpgt_p (signed int, vbc, vsc);
904 VCMPGTSB_P VCMPGTSB_P_BS
905 signed int __builtin_vec_vcmpgt_p (signed int, vsc, vbc);
906 VCMPGTSB_P VCMPGTSB_P_SB
907 signed int __builtin_vec_vcmpgt_p (signed int, vbs, vus);
908 VCMPGTUH_P VCMPGTUH_P_BU
909 signed int __builtin_vec_vcmpgt_p (signed int, vus, vbs);
910 VCMPGTUH_P VCMPGTUH_P_UB
911 signed int __builtin_vec_vcmpgt_p (signed int, vbs, vss);
912 VCMPGTSH_P VCMPGTSH_P_BS
913 signed int __builtin_vec_vcmpgt_p (signed int, vss, vbs);
914 VCMPGTSH_P VCMPGTSH_P_SB
915 signed int __builtin_vec_vcmpgt_p (signed int, vbi, vui);
916 VCMPGTUW_P VCMPGTUW_P_BU
917 signed int __builtin_vec_vcmpgt_p (signed int, vui, vbi);
918 VCMPGTUW_P VCMPGTUW_P_UB
919 signed int __builtin_vec_vcmpgt_p (signed int, vbi, vsi);
920 VCMPGTSW_P VCMPGTSW_P_BS
921 signed int __builtin_vec_vcmpgt_p (signed int, vsi, vbi);
922 VCMPGTSW_P VCMPGTSW_P_SB
923 signed int __builtin_vec_vcmpgt_p (signed int, vbll, vull);
924 VCMPGTUD_P VCMPGTUD_P_BU
925 signed int __builtin_vec_vcmpgt_p (signed int, vull, vbll);
926 VCMPGTUD_P VCMPGTUD_P_UB
927 signed int __builtin_vec_vcmpgt_p (signed int, vbll, vsll);
928 VCMPGTSD_P VCMPGTSD_P_BS
929 signed int __builtin_vec_vcmpgt_p (signed int, vsll, vbll);
930 VCMPGTSD_P VCMPGTSD_P_SB
931
932; Note that there is no entry for VEC_CMPLE. VEC_CMPLE is implemented
933; using VEC_CMPGE with reversed arguments in altivec.h.
934
935; Note that there is no entry for VEC_CMPLT. VEC_CMPLT is implemented
936; using VEC_CMPGT with reversed arguments in altivec.h.
937
938[VEC_CMPNE, vec_cmpne, __builtin_vec_cmpne]
939 vbc __builtin_vec_cmpne (vbc, vbc);
940 VCMPNEB VCMPNEB_VBC
941 vbc __builtin_vec_cmpne (vsc, vsc);
942 VCMPNEB VCMPNEB_VSC
943 vbc __builtin_vec_cmpne (vuc, vuc);
944 VCMPNEB VCMPNEB_VUC
945 vbs __builtin_vec_cmpne (vbs, vbs);
946 VCMPNEH VCMPNEH_VBS
947 vbs __builtin_vec_cmpne (vss, vss);
948 VCMPNEH VCMPNEH_VSS
949 vbs __builtin_vec_cmpne (vus, vus);
950 VCMPNEH VCMPNEH_VUS
951 vbi __builtin_vec_cmpne (vbi, vbi);
952 VCMPNEW VCMPNEW_VBI
953 vbi __builtin_vec_cmpne (vsi, vsi);
954 VCMPNEW VCMPNEW_VSI
955 vbi __builtin_vec_cmpne (vui, vui);
956 VCMPNEW VCMPNEW_VUI
957 vbq __builtin_vec_cmpne (vsq, vsq);
958 VCMPNET VCMPNET_VSQ
959 vbq __builtin_vec_cmpne (vuq, vuq);
960 VCMPNET VCMPNET_VUQ
961
962; We skip generating a #define because of the C-versus-C++ complexity
963; in altivec.h. Look there for the template-y details.
964[VEC_CMPNE_P, SKIP, __builtin_vec_vcmpne_p]
965 signed int __builtin_vec_vcmpne_p (vsc, vsc);
966 VCMPNEB_P VCMPNEB_VSC_P
967 signed int __builtin_vec_vcmpne_p (vuc, vuc);
968 VCMPNEB_P VCMPNEB_VUC_P
969 signed int __builtin_vec_vcmpne_p (vbc, vbc);
970 VCMPNEB_P VCMPNEB_VBC_P
971 signed int __builtin_vec_vcmpne_p (vss, vss);
972 VCMPNEH_P VCMPNEH_VSS_P
973 signed int __builtin_vec_vcmpne_p (vus, vus);
974 VCMPNEH_P VCMPNEH_VUS_P
975 signed int __builtin_vec_vcmpne_p (vbs, vbs);
976 VCMPNEH_P VCMPNEH_VBS_P
977 signed int __builtin_vec_vcmpne_p (vp, vp);
978 VCMPNEH_P VCMPNEH_VP_P
979 signed int __builtin_vec_vcmpne_p (vsi, vsi);
980 VCMPNEW_P VCMPNEW_VSI_P
981 signed int __builtin_vec_vcmpne_p (vui, vui);
982 VCMPNEW_P VCMPNEW_VUI_P
983 signed int __builtin_vec_vcmpne_p (vbi, vbi);
984 VCMPNEW_P VCMPNEW_VBI_P
985 signed int __builtin_vec_vcmpne_p (vsll, vsll);
986 VCMPNED_P VCMPNED_VSLL_P
987 signed int __builtin_vec_vcmpne_p (vull, vull);
988 VCMPNED_P VCMPNED_VULL_P
989 signed int __builtin_vec_vcmpne_p (vbll, vbll);
990 VCMPNED_P VCMPNED_VBLL_P
991 signed int __builtin_vec_vcmpne_p (vsq, vsq);
992 VCMPNET_P VCMPNET_VSQ_P
993 signed int __builtin_vec_vcmpne_p (vuq, vuq);
994 VCMPNET_P VCMPNET_VUQ_P
995 signed int __builtin_vec_vcmpne_p (vf, vf);
996 VCMPNEFP_P
997 signed int __builtin_vec_vcmpne_p (vd, vd);
998 VCMPNEDP_P
999; The following variants are deprecated.
1000 signed int __builtin_vec_vcmpne_p (signed int, vbc, vuc);
1001 VCMPNEB_P VCMPNEB_P_BU
1002 signed int __builtin_vec_vcmpne_p (signed int, vuc, vbc);
1003 VCMPNEB_P VCMPNEB_P_UB
1004 signed int __builtin_vec_vcmpne_p (signed int, vbc, vsc);
1005 VCMPNEB_P VCMPNEB_P_BS
1006 signed int __builtin_vec_vcmpne_p (signed int, vsc, vbc);
1007 VCMPNEB_P VCMPNEB_P_SB
1008 signed int __builtin_vec_vcmpne_p (signed int, vbs, vus);
1009 VCMPNEH_P VCMPNEH_P_BU
1010 signed int __builtin_vec_vcmpne_p (signed int, vus, vbs);
1011 VCMPNEH_P VCMPNEH_P_UB
1012 signed int __builtin_vec_vcmpne_p (signed int, vbs, vss);
1013 VCMPNEH_P VCMPNEH_P_BS
1014 signed int __builtin_vec_vcmpne_p (signed int, vss, vbs);
1015 VCMPNEH_P VCMPNEH_P_SB
1016 signed int __builtin_vec_vcmpne_p (signed int, vbi, vui);
1017 VCMPNEW_P VCMPNEW_P_BU
1018 signed int __builtin_vec_vcmpne_p (signed int, vui, vbi);
1019 VCMPNEW_P VCMPNEW_P_UB
1020 signed int __builtin_vec_vcmpne_p (signed int, vbi, vsi);
1021 VCMPNEW_P VCMPNEW_P_BS
1022 signed int __builtin_vec_vcmpne_p (signed int, vsi, vbi);
1023 VCMPNEW_P VCMPNEW_P_SB
1024 signed int __builtin_vec_vcmpne_p (signed int, vbll, vull);
1025 VCMPNED_P VCMPNED_P_BU
1026 signed int __builtin_vec_vcmpne_p (signed int, vull, vbll);
1027 VCMPNED_P VCMPNED_P_UB
1028 signed int __builtin_vec_vcmpne_p (signed int, vbll, vsll);
1029 VCMPNED_P VCMPNED_P_BS
1030 signed int __builtin_vec_vcmpne_p (signed int, vbll, vsll);
1031 VCMPNED_P VCMPNED_P_SB
1032
7e836079 1033[VEC_CMPNEZ, vec_cmpnez, __builtin_vec_vcmpnez]
e2693a72
BS
1034 vbc __builtin_vec_cmpnez (vsc, vsc);
1035 CMPNEZB CMPNEZB_S
1036 vbc __builtin_vec_cmpnez (vuc, vuc);
1037 CMPNEZB CMPNEZB_U
1038 vbs __builtin_vec_cmpnez (vss, vss);
1039 CMPNEZH CMPNEZH_S
1040 vbs __builtin_vec_cmpnez (vus, vus);
1041 CMPNEZH CMPNEZH_U
1042 vbi __builtin_vec_cmpnez (vsi, vsi);
1043 CMPNEZW CMPNEZW_S
1044 vbi __builtin_vec_cmpnez (vui, vui);
1045 CMPNEZW CMPNEZW_U
1046
1047; We skip generating a #define because of the C-versus-C++ complexity
1048; in altivec.h. Look there for the template-y details.
1049[VEC_CMPNEZ_P, SKIP, __builtin_vec_vcmpnez_p]
1050 signed int __builtin_vec_vcmpnez_p (signed int, vsc, vsc);
1051 VCMPNEZB_P VCMPNEZB_VSC_P
1052 signed int __builtin_vec_vcmpnez_p (signed int, vuc, vuc);
1053 VCMPNEZB_P VCMPNEZB_VUC_P
1054 signed int __builtin_vec_vcmpnez_p (signed int, vss, vss);
1055 VCMPNEZH_P VCMPNEZH_VSS_P
1056 signed int __builtin_vec_vcmpnez_p (signed int, vus, vus);
1057 VCMPNEZH_P VCMPNEZH_VUS_P
1058 signed int __builtin_vec_vcmpnez_p (signed int, vsi, vsi);
1059 VCMPNEZW_P VCMPNEZW_VSI_P
1060 signed int __builtin_vec_vcmpnez_p (signed int, vui, vui);
1061 VCMPNEZW_P VCMPNEZW_VUI_P
1062
1063[VEC_CMPRB, SKIP, __builtin_byte_in_range]
1064 signed int __builtin_byte_in_range (unsigned int, unsigned int);
1065 CMPRB
1066
1067[VEC_CMPRB2, SKIP, __builtin_byte_in_either_range]
1068 signed int __builtin_byte_in_range (unsigned int, unsigned int);
1069 CMPRB2
1070
7e836079 1071[VEC_CNTLZ, vec_cntlz, __builtin_vec_vclz]
e2693a72
BS
1072 vsc __builtin_vec_vclz (vsc);
1073 VCLZB VCLZB_S
1074 vuc __builtin_vec_vclz (vuc);
1075 VCLZB VCLZB_U
1076 vss __builtin_vec_vclz (vss);
1077 VCLZH VCLZH_S
1078 vus __builtin_vec_vclz (vus);
1079 VCLZH VCLZH_U
1080 vsi __builtin_vec_vclz (vsi);
1081 VCLZW VCLZW_S
1082 vui __builtin_vec_vclz (vui);
1083 VCLZW VCLZW_U
1084 vsll __builtin_vec_vclz (vsll);
1085 VCLZD VCLZD_S
1086 vull __builtin_vec_vclz (vull);
1087 VCLZD VCLZD_U
1088
7e836079 1089[VEC_CNTLZM, vec_cntlzm, __builtin_vec_vclzdm]
e2693a72
BS
1090 vull __builtin_vec_vclzdm (vull, vull);
1091 VCLZDM
1092
7e836079 1093[VEC_CNTTZM, vec_cnttzm, __builtin_vec_vctzdm]
e2693a72
BS
1094 vull __builtin_vec_vctzdm (vull, vull);
1095 VCTZDM
1096
7e836079 1097[VEC_CNTLZ_LSBB, vec_cntlz_lsbb, __builtin_vec_vclzlsbb]
e2693a72
BS
1098 signed int __builtin_vec_vclzlsbb (vsc);
1099 VCLZLSBB_V16QI VCLZLSBB_VSC
1100 signed int __builtin_vec_vclzlsbb (vuc);
1101 VCLZLSBB_V16QI VCLZLSBB_VUC
1102 signed int __builtin_vec_vclzlsbb (vss);
1103 VCLZLSBB_V8HI VCLZLSBB_VSS
1104 signed int __builtin_vec_vclzlsbb (vus);
1105 VCLZLSBB_V8HI VCLZLSBB_VUS
1106 signed int __builtin_vec_vclzlsbb (vsi);
1107 VCLZLSBB_V4SI VCLZLSBB_VSI
1108 signed int __builtin_vec_vclzlsbb (vui);
1109 VCLZLSBB_V4SI VCLZLSBB_VUI
1110
7e836079 1111[VEC_CNTM, vec_cntm, __builtin_vec_cntm]
e2693a72
BS
1112 unsigned long long __builtin_vec_cntm (vuc, const int);
1113 VCNTMBB
1114 unsigned long long __builtin_vec_cntm (vus, const int);
1115 VCNTMBH
1116 unsigned long long __builtin_vec_cntm (vui, const int);
1117 VCNTMBW
1118 unsigned long long __builtin_vec_cntm (vull, const int);
1119 VCNTMBD
1120
7e836079 1121[VEC_CNTTZ, vec_cnttz, __builtin_vec_vctz]
e2693a72
BS
1122 vsc __builtin_vec_vctz (vsc);
1123 VCTZB VCTZB_S
1124 vuc __builtin_vec_vctz (vuc);
1125 VCTZB VCTZB_U
1126 vss __builtin_vec_vctz (vss);
1127 VCTZH VCTZH_S
1128 vus __builtin_vec_vctz (vus);
1129 VCTZH VCTZH_U
1130 vsi __builtin_vec_vctz (vsi);
1131 VCTZW VCTZW_S
1132 vui __builtin_vec_vctz (vui);
1133 VCTZW VCTZW_U
1134 vsll __builtin_vec_vctz (vsll);
1135 VCTZD VCTZD_S
1136 vull __builtin_vec_vctz (vull);
1137 VCTZD VCTZD_U
1138
7e836079 1139[VEC_CNTTZ_LSBB, vec_cnttz_lsbb, __builtin_vec_vctzlsbb]
e2693a72
BS
1140 signed int __builtin_vec_vctzlsbb (vsc);
1141 VCTZLSBB_V16QI VCTZLSBB_VSC
1142 signed int __builtin_vec_vctzlsbb (vuc);
1143 VCTZLSBB_V16QI VCTZLSBB_VUC
1144 signed int __builtin_vec_vctzlsbb (vss);
1145 VCTZLSBB_V8HI VCTZLSBB_VSS
1146 signed int __builtin_vec_vctzlsbb (vus);
1147 VCTZLSBB_V8HI VCTZLSBB_VUS
1148 signed int __builtin_vec_vctzlsbb (vsi);
1149 VCTZLSBB_V4SI VCTZLSBB_VSI
1150 signed int __builtin_vec_vctzlsbb (vui);
1151 VCTZLSBB_V4SI VCTZLSBB_VUI
1152
1153[VEC_CONVERT_4F32_8I16, SKIP, __builtin_vec_convert_4f32_8i16]
1154 vus __builtin_vec_convert_4f32_8i16 (vf, vf);
1155 CONVERT_4F32_8I16
1156
7e836079 1157[VEC_CONVERT_4F32_8F16, vec_pack_to_short_fp32, __builtin_vec_convert_4f32_8f16]
e2693a72
BS
1158 vus __builtin_vec_convert_4f32_8f16 (vf, vf);
1159 CONVERT_4F32_8F16
1160
76ba473b 1161[VEC_COPYSIGN, SKIP, __builtin_vec_copysign]
e2693a72 1162 vf __builtin_vec_copysign (vf, vf);
76ba473b 1163 COPYSIGN_V4SF
e2693a72
BS
1164 vd __builtin_vec_copysign (vd, vd);
1165 CPSGNDP
1166
1167[VEC_CTF, vec_ctf, __builtin_vec_ctf]
1168 vf __builtin_vec_ctf (vsi, const int);
1169 VCFSX
1170 vf __builtin_vec_ctf (vui, const int);
1171 VCFUX
1172 vd __builtin_vec_ctf (vsll, const int);
1173 XVCVSXDDP_SCALE
1174 vd __builtin_vec_ctf (vull, const int);
1175 XVCVUXDDP_SCALE
1176
1177[VEC_CTS, vec_cts, __builtin_vec_cts]
1178 vsi __builtin_vec_cts (vf, const int);
1179 VCTSXS
1180 vsll __builtin_vec_cts (vd, const int);
1181 XVCVDPSXDS_SCALE
1182
1183[VEC_CTU, vec_ctu, __builtin_vec_ctu]
1184 vui __builtin_vec_ctu (vf, const int);
1185 VCTUXS
1186 vull __builtin_vec_ctu (vd, const int);
1187 XVCVDPUXDS_SCALE
1188
7e836079 1189[VEC_DIV, vec_div, __builtin_vec_div]
e2693a72
BS
1190 vsi __builtin_vec_div (vsi, vsi);
1191 VDIVSW
1192 vui __builtin_vec_div (vui, vui);
1193 VDIVUW
1194 vsll __builtin_vec_div (vsll, vsll);
1195 DIV_V2DI
1196 vull __builtin_vec_div (vull, vull);
1197 UDIV_V2DI
1198 vsq __builtin_vec_div (vsq, vsq);
1199 DIV_V1TI
1200 vuq __builtin_vec_div (vuq, vuq);
1201 UDIV_V1TI
1202 vf __builtin_vec_div (vf, vf);
1203 XVDIVSP
1204 vd __builtin_vec_div (vd, vd);
1205 XVDIVDP
1206
7e836079 1207[VEC_DIVE, vec_dive, __builtin_vec_dive]
e2693a72
BS
1208 vsi __builtin_vec_dive (vsi, vsi);
1209 VDIVESW
1210 vui __builtin_vec_dive (vui, vui);
1211 VDIVEUW
1212 vsll __builtin_vec_dive (vsll, vsll);
1213 VDIVESD
1214 vull __builtin_vec_dive (vull, vull);
1215 VDIVEUD
1216 vsq __builtin_vec_dive (vsq, vsq);
1217 DIVES_V1TI
1218 vuq __builtin_vec_dive (vuq, vuq);
1219 DIVEU_V1TI
1220
1221[VEC_DOUBLE, vec_double, __builtin_vec_double]
1222 vd __builtin_vec_double (vsll);
1223 XVCVSXDDP
1224 vd __builtin_vec_double (vull);
1225 XVCVUXDDP
1226
1227[VEC_DOUBLEE, vec_doublee, __builtin_vec_doublee]
1228 vd __builtin_vec_doublee (vsi);
1229 DOUBLEE_V4SI
1230 vd __builtin_vec_doublee (vui);
1231 UNS_DOUBLEE_V4SI
1232 vd __builtin_vec_doublee (vf);
1233 DOUBLEE_V4SF
1234
1235[VEC_DOUBLEH, vec_doubleh, __builtin_vec_doubleh]
1236 vd __builtin_vec_doubleh (vsi);
1237 DOUBLEH_V4SI
1238 vd __builtin_vec_doubleh (vui);
1239 UNS_DOUBLEH_V4SI
1240 vd __builtin_vec_doubleh (vf);
1241 DOUBLEH_V4SF
1242
1243[VEC_DOUBLEL, vec_doublel, __builtin_vec_doublel]
1244 vd __builtin_vec_doublel (vsi);
1245 DOUBLEL_V4SI
1246 vd __builtin_vec_doublel (vui);
1247 UNS_DOUBLEL_V4SI
1248 vd __builtin_vec_doublel (vf);
1249 DOUBLEL_V4SF
1250
1251[VEC_DOUBLEO, vec_doubleo, __builtin_vec_doubleo]
1252 vd __builtin_vec_doubleo (vsi);
1253 DOUBLEO_V4SI
1254 vd __builtin_vec_doubleo (vui);
1255 UNS_DOUBLEO_V4SI
1256 vd __builtin_vec_doubleo (vf);
1257 DOUBLEO_V4SF
1258
1259[VEC_DST, vec_dst, __builtin_vec_dst]
1260 void __builtin_vec_dst (unsigned char *, const int, const int);
1261 DST DST_UC
1262 void __builtin_vec_dst (signed char *, const int, const int);
1263 DST DST_SC
1264 void __builtin_vec_dst (unsigned short *, const int, const int);
1265 DST DST_US
1266 void __builtin_vec_dst (signed short *, const int, const int);
1267 DST DST_SS
1268 void __builtin_vec_dst (unsigned int *, const int, const int);
1269 DST DST_UI
1270 void __builtin_vec_dst (signed int *, const int, const int);
1271 DST DST_SI
1272 void __builtin_vec_dst (unsigned long *, const int, const int);
1273 DST DST_UL
1274 void __builtin_vec_dst (signed long *, const int, const int);
1275 DST DST_SL
1276 void __builtin_vec_dst (unsigned long long *, const int, const int);
1277 DST DST_ULL
1278 void __builtin_vec_dst (signed long long *, const int, const int);
1279 DST DST_SLL
1280 void __builtin_vec_dst (float *, const int, const int);
1281 DST DST_F
1282 void __builtin_vec_dst (vuc *, const int, const int);
1283 DST DST_VUC
1284 void __builtin_vec_dst (vsc *, const int, const int);
1285 DST DST_VSC
1286 void __builtin_vec_dst (vbc *, const int, const int);
1287 DST DST_VBC
1288 void __builtin_vec_dst (vus *, const int, const int);
1289 DST DST_VUS
1290 void __builtin_vec_dst (vss *, const int, const int);
1291 DST DST_VSS
1292 void __builtin_vec_dst (vbs *, const int, const int);
1293 DST DST_VBS
1294 void __builtin_vec_dst (vp *, const int, const int);
1295 DST DST_VP
1296 void __builtin_vec_dst (vui *, const int, const int);
1297 DST DST_VUI
1298 void __builtin_vec_dst (vsi *, const int, const int);
1299 DST DST_VSI
1300 void __builtin_vec_dst (vbi *, const int, const int);
1301 DST DST_VBI
1302 void __builtin_vec_dst (vf *, const int, const int);
1303 DST DST_VF
1304
1305[VEC_DSTST, vec_dstst, __builtin_vec_dstst]
1306 void __builtin_vec_dstst (unsigned char *, const int, const int);
1307 DSTST DSTST_UC
1308 void __builtin_vec_dstst (signed char *, const int, const int);
1309 DSTST DSTST_SC
1310 void __builtin_vec_dstst (unsigned short *, const int, const int);
1311 DSTST DSTST_US
1312 void __builtin_vec_dstst (signed short *, const int, const int);
1313 DSTST DSTST_SS
1314 void __builtin_vec_dstst (unsigned int *, const int, const int);
1315 DSTST DSTST_UI
1316 void __builtin_vec_dstst (signed int *, const int, const int);
1317 DSTST DSTST_SI
1318 void __builtin_vec_dstst (unsigned long *, const int, const int);
1319 DSTST DSTST_UL
1320 void __builtin_vec_dstst (signed long *, const int, const int);
1321 DSTST DSTST_SL
1322 void __builtin_vec_dstst (unsigned long long *, const int, const int);
1323 DSTST DSTST_ULL
1324 void __builtin_vec_dstst (signed long long *, const int, const int);
1325 DSTST DSTST_SLL
1326 void __builtin_vec_dstst (float *, const int, const int);
1327 DSTST DSTST_F
1328 void __builtin_vec_dstst (vuc *, const int, const int);
1329 DSTST DSTST_VUC
1330 void __builtin_vec_dstst (vsc *, const int, const int);
1331 DSTST DSTST_VSC
1332 void __builtin_vec_dstst (vbc *, const int, const int);
1333 DSTST DSTST_VBC
1334 void __builtin_vec_dstst (vus *, const int, const int);
1335 DSTST DSTST_VUS
1336 void __builtin_vec_dstst (vss *, const int, const int);
1337 DSTST DSTST_VSS
1338 void __builtin_vec_dstst (vbs *, const int, const int);
1339 DSTST DSTST_VBS
1340 void __builtin_vec_dstst (vp *, const int, const int);
1341 DSTST DSTST_VP
1342 void __builtin_vec_dstst (vui *, const int, const int);
1343 DSTST DSTST_VUI
1344 void __builtin_vec_dstst (vsi *, const int, const int);
1345 DSTST DSTST_VSI
1346 void __builtin_vec_dstst (vbi *, const int, const int);
1347 DSTST DSTST_VBI
1348 void __builtin_vec_dstst (vf *, const int, const int);
1349 DSTST DSTST_VF
1350
1351[VEC_DSTSTT, vec_dststt, __builtin_vec_dststt]
1352 void __builtin_vec_dststt (unsigned char *, const int, const int);
1353 DSTSTT DSTSTT_UC
1354 void __builtin_vec_dststt (signed char *, const int, const int);
1355 DSTSTT DSTSTT_SC
1356 void __builtin_vec_dststt (unsigned short *, const int, const int);
1357 DSTSTT DSTSTT_US
1358 void __builtin_vec_dststt (signed short *, const int, const int);
1359 DSTSTT DSTSTT_SS
1360 void __builtin_vec_dststt (unsigned int *, const int, const int);
1361 DSTSTT DSTSTT_UI
1362 void __builtin_vec_dststt (signed int *, const int, const int);
1363 DSTSTT DSTSTT_SI
1364 void __builtin_vec_dststt (unsigned long *, const int, const int);
1365 DSTSTT DSTSTT_UL
1366 void __builtin_vec_dststt (signed long *, const int, const int);
1367 DSTSTT DSTSTT_SL
1368 void __builtin_vec_dststt (unsigned long long *, const int, const int);
1369 DSTSTT DSTSTT_ULL
1370 void __builtin_vec_dststt (signed long long *, const int, const int);
1371 DSTSTT DSTSTT_SLL
1372 void __builtin_vec_dststt (float *, const int, const int);
1373 DSTSTT DSTSTT_F
1374 void __builtin_vec_dststt (vuc *, const int, const int);
1375 DSTSTT DSTSTT_VUC
1376 void __builtin_vec_dststt (vsc *, const int, const int);
1377 DSTSTT DSTSTT_VSC
1378 void __builtin_vec_dststt (vbc *, const int, const int);
1379 DSTSTT DSTSTT_VBC
1380 void __builtin_vec_dststt (vus *, const int, const int);
1381 DSTSTT DSTSTT_VUS
1382 void __builtin_vec_dststt (vss *, const int, const int);
1383 DSTSTT DSTSTT_VSS
1384 void __builtin_vec_dststt (vbs *, const int, const int);
1385 DSTSTT DSTSTT_VBS
1386 void __builtin_vec_dststt (vp *, const int, const int);
1387 DSTSTT DSTSTT_VP
1388 void __builtin_vec_dststt (vui *, const int, const int);
1389 DSTSTT DSTSTT_VUI
1390 void __builtin_vec_dststt (vsi *, const int, const int);
1391 DSTSTT DSTSTT_VSI
1392 void __builtin_vec_dststt (vbi *, const int, const int);
1393 DSTSTT DSTSTT_VBI
1394 void __builtin_vec_dststt (vf *, const int, const int);
1395 DSTSTT DSTSTT_VF
1396
1397[VEC_DSTT, vec_dstt, __builtin_vec_dstt]
1398 void __builtin_vec_dstt (unsigned char *, const int, const int);
1399 DSTT DSTT_UC
1400 void __builtin_vec_dstt (signed char *, const int, const int);
1401 DSTT DSTT_SC
1402 void __builtin_vec_dstt (unsigned short *, const int, const int);
1403 DSTT DSTT_US
1404 void __builtin_vec_dstt (signed short *, const int, const int);
1405 DSTT DSTT_SS
1406 void __builtin_vec_dstt (unsigned int *, const int, const int);
1407 DSTT DSTT_UI
1408 void __builtin_vec_dstt (signed int *, const int, const int);
1409 DSTT DSTT_SI
1410 void __builtin_vec_dstt (unsigned long *, const int, const int);
1411 DSTT DSTT_UL
1412 void __builtin_vec_dstt (signed long *, const int, const int);
1413 DSTT DSTT_SL
1414 void __builtin_vec_dstt (unsigned long long *, const int, const int);
1415 DSTT DSTT_ULL
1416 void __builtin_vec_dstt (signed long long *, const int, const int);
1417 DSTT DSTT_SLL
1418 void __builtin_vec_dstt (float *, const int, const int);
1419 DSTT DSTT_F
1420 void __builtin_vec_dstt (vuc *, const int, const int);
1421 DSTT DSTT_VUC
1422 void __builtin_vec_dstt (vsc *, const int, const int);
1423 DSTT DSTT_VSC
1424 void __builtin_vec_dstt (vbc *, const int, const int);
1425 DSTT DSTT_VBC
1426 void __builtin_vec_dstt (vus *, const int, const int);
1427 DSTT DSTT_VUS
1428 void __builtin_vec_dstt (vss *, const int, const int);
1429 DSTT DSTT_VSS
1430 void __builtin_vec_dstt (vbs *, const int, const int);
1431 DSTT DSTT_VBS
1432 void __builtin_vec_dstt (vp *, const int, const int);
1433 DSTT DSTT_VP
1434 void __builtin_vec_dstt (vui *, const int, const int);
1435 DSTT DSTT_VUI
1436 void __builtin_vec_dstt (vsi *, const int, const int);
1437 DSTT DSTT_VSI
1438 void __builtin_vec_dstt (vbi *, const int, const int);
1439 DSTT DSTT_VBI
1440 void __builtin_vec_dstt (vf *, const int, const int);
1441 DSTT DSTT_VF
1442
7e836079 1443[VEC_EQV, vec_eqv, __builtin_vec_eqv]
e2693a72
BS
1444 vsc __builtin_vec_eqv (vsc, vsc);
1445 EQV_V16QI
1446 vuc __builtin_vec_eqv (vuc, vuc);
1447 EQV_V16QI_UNS EQV_V16QI_VUC
1448 vbc __builtin_vec_eqv (vbc, vbc);
1449 EQV_V16QI_UNS EQV_V16QI_VBC
1450 vss __builtin_vec_eqv (vss, vss);
1451 EQV_V8HI
1452 vus __builtin_vec_eqv (vus, vus);
1453 EQV_V8HI_UNS EQV_V8HI_VUS
1454 vbs __builtin_vec_eqv (vbs, vbs);
1455 EQV_V8HI_UNS EQV_V8HI_VBS
1456 vsi __builtin_vec_eqv (vsi, vsi);
1457 EQV_V4SI
1458 vui __builtin_vec_eqv (vui, vui);
1459 EQV_V4SI_UNS EQV_V4SI_VUI
1460 vbi __builtin_vec_eqv (vbi, vbi);
1461 EQV_V4SI_UNS EQV_V4SI_VBI
1462 vsll __builtin_vec_eqv (vsll, vsll);
1463 EQV_V2DI
1464 vull __builtin_vec_eqv (vull, vull);
1465 EQV_V2DI_UNS EQV_V2DI_VULL
1466 vbll __builtin_vec_eqv (vbll, vbll);
1467 EQV_V2DI_UNS EQV_V2DI_VBLL
1468 vf __builtin_vec_eqv (vf, vf);
1469 EQV_V4SF
1470 vd __builtin_vec_eqv (vd, vd);
1471 EQV_V2DF
1472; The following variants are deprecated.
1473 vsc __builtin_vec_eqv (vbc, vsc);
1474 EQV_V16QI EQV_VBC_VSC
1475 vsc __builtin_vec_eqv (vsc, vbc);
1476 EQV_V16QI EQV_VSC_VBC
1477 vuc __builtin_vec_eqv (vbc, vuc);
1478 EQV_V16QI_UNS EQV_VBC_VUC
1479 vuc __builtin_vec_eqv (vuc, vbc);
1480 EQV_V16QI_UNS EQV_VUC_VBC
1481 vss __builtin_vec_eqv (vbs, vss);
1482 EQV_V8HI EQV_VBS_VSS
1483 vss __builtin_vec_eqv (vss, vbs);
1484 EQV_V8HI EQV_VSS_VBS
1485 vus __builtin_vec_eqv (vbs, vus);
1486 EQV_V8HI_UNS EQV_VBS_VUS
1487 vus __builtin_vec_eqv (vus, vbs);
1488 EQV_V8HI_UNS EQV_VUS_VBS
1489 vsi __builtin_vec_eqv (vbi, vsi);
1490 EQV_V4SI EQV_VBI_VSI
1491 vsi __builtin_vec_eqv (vsi, vbi);
1492 EQV_V4SI EQV_VSI_VBI
1493 vui __builtin_vec_eqv (vbi, vui);
1494 EQV_V4SI_UNS EQV_VBI_VUI
1495 vui __builtin_vec_eqv (vui, vbi);
1496 EQV_V4SI_UNS EQV_VUI_VBI
1497 vsll __builtin_vec_eqv (vbll, vsll);
1498 EQV_V2DI EQV_VBLL_VSLL
1499 vsll __builtin_vec_eqv (vsll, vbll);
1500 EQV_V2DI EQV_VSLL_VBLL
1501 vull __builtin_vec_eqv (vbll, vull);
1502 EQV_V2DI_UNS EQV_VBLL_VULL
1503 vull __builtin_vec_eqv (vull, vbll);
1504 EQV_V2DI_UNS EQV_VULL_VBLL
1505
7e836079 1506[VEC_EXPANDM, vec_expandm, __builtin_vec_vexpandm]
e2693a72
BS
1507 vuc __builtin_vec_vexpandm (vuc);
1508 VEXPANDMB
1509 vus __builtin_vec_vexpandm (vus);
1510 VEXPANDMH
1511 vui __builtin_vec_vexpandm (vui);
1512 VEXPANDMW
1513 vull __builtin_vec_vexpandm (vull);
1514 VEXPANDMD
1515 vuq __builtin_vec_vexpandm (vuq);
1516 VEXPANDMQ
1517
1518[VEC_EXPTE, vec_expte, __builtin_vec_expte]
1519 vf __builtin_vec_expte (vf);
1520 VEXPTEFP
1521
1522; There are no actual builtins for vec_extract. There is special handling for
e53b6e56 1523; this in altivec_resolve_overloaded_builtin in rs6000-c.cc, where the call
e2693a72
BS
1524; is replaced by "pointer tricks." The single overload here causes
1525; __builtin_vec_extract to be registered with the front end so this can
1526; happen.
1527[VEC_EXTRACT, vec_extract, __builtin_vec_extract]
1528 vsi __builtin_vec_extract (vsi, signed int);
1529 VSPLTW EXTRACT_FAKERY
1530
7e836079 1531[VEC_EXTRACT_FP_FROM_SHORTH, vec_extract_fp32_from_shorth, __builtin_vec_vextract_fp_from_shorth]
e2693a72
BS
1532 vf __builtin_vec_vextract_fp_from_shorth (vus);
1533 VEXTRACT_FP_FROM_SHORTH
1534
7e836079 1535[VEC_EXTRACT_FP_FROM_SHORTL, vec_extract_fp32_from_shortl, __builtin_vec_vextract_fp_from_shortl]
e2693a72
BS
1536 vf __builtin_vec_vextract_fp_from_shortl (vus);
1537 VEXTRACT_FP_FROM_SHORTL
1538
7e836079 1539[VEC_EXTRACTH, vec_extracth, __builtin_vec_extracth]
e2693a72
BS
1540 vull __builtin_vec_extracth (vuc, vuc, unsigned char);
1541 VEXTRACTBR
1542 vull __builtin_vec_extracth (vus, vus, unsigned char);
1543 VEXTRACTHR
1544 vull __builtin_vec_extracth (vui, vui, unsigned char);
1545 VEXTRACTWR
1546 vull __builtin_vec_extracth (vull, vull, unsigned char);
1547 VEXTRACTDR
1548
7e836079 1549[VEC_EXTRACTL, vec_extractl, __builtin_vec_extractl]
e2693a72
BS
1550 vull __builtin_vec_extractl (vuc, vuc, unsigned char);
1551 VEXTRACTBL
1552 vull __builtin_vec_extractl (vus, vus, unsigned char);
1553 VEXTRACTHL
1554 vull __builtin_vec_extractl (vui, vui, unsigned char);
1555 VEXTRACTWL
1556 vull __builtin_vec_extractl (vull, vull, unsigned char);
1557 VEXTRACTDL
1558
7e836079 1559[VEC_EXTRACTM, vec_extractm, __builtin_vec_vextractm]
e2693a72
BS
1560 signed int __builtin_vec_vextractm (vuc);
1561 VEXTRACTMB
1562 signed int __builtin_vec_vextractm (vus);
1563 VEXTRACTMH
1564 signed int __builtin_vec_vextractm (vui);
1565 VEXTRACTMW
1566 signed int __builtin_vec_vextractm (vull);
1567 VEXTRACTMD
1568 signed int __builtin_vec_vextractm (vuq);
1569 VEXTRACTMQ
1570
7e836079 1571[VEC_EXTRACT4B, vec_extract4b, __builtin_vec_extract4b]
e2693a72
BS
1572 vull __builtin_vec_extract4b (vuc, const int);
1573 EXTRACT4B
1574
7e836079 1575[VEC_EXTULX, vec_xlx, __builtin_vec_vextulx]
e2693a72
BS
1576 signed char __builtin_vec_vextulx (unsigned int, vsc);
1577 VEXTUBLX VEXTUBLX_S
1578 unsigned char __builtin_vec_vextulx (unsigned int, vuc);
1579 VEXTUBLX VEXTUBLX_U
1580 signed short __builtin_vec_vextulx (unsigned int, vss);
1581 VEXTUHLX VEXTUHLX_S
1582 unsigned short __builtin_vec_vextulx (unsigned int, vus);
1583 VEXTUHLX VEXTUHLX_U
1584 signed int __builtin_vec_vextulx (unsigned int, vsi);
1585 VEXTUWLX VEXTUWLX_S
1586 unsigned int __builtin_vec_vextulx (unsigned int, vui);
1587 VEXTUWLX VEXTUWLX_U
1588 float __builtin_vec_vextulx (unsigned int, vf);
1589 VEXTUWLX VEXTUWLX_F
1590
7e836079 1591[VEC_EXTURX, vec_xrx, __builtin_vec_vexturx]
e2693a72
BS
1592 signed char __builtin_vec_vexturx (unsigned int, vsc);
1593 VEXTUBRX VEXTUBRX_S
1594 unsigned char __builtin_vec_vexturx (unsigned int, vuc);
1595 VEXTUBRX VEXTUBRX_U
1596 signed short __builtin_vec_vexturx (unsigned int, vss);
1597 VEXTUHRX VEXTUHRX_S
1598 unsigned short __builtin_vec_vexturx (unsigned int, vus);
1599 VEXTUHRX VEXTUHRX_U
1600 signed int __builtin_vec_vexturx (unsigned int, vsi);
1601 VEXTUWRX VEXTUWRX_S
1602 unsigned int __builtin_vec_vexturx (unsigned int, vui);
1603 VEXTUWRX VEXTUWRX_U
1604 float __builtin_vec_vexturx (unsigned int, vf);
1605 VEXTUWRX VEXTUWRX_F
1606
7e836079 1607[VEC_FIRSTMATCHINDEX, vec_first_match_index, __builtin_vec_first_match_index]
e2693a72
BS
1608 unsigned int __builtin_vec_first_match_index (vsc, vsc);
1609 VFIRSTMATCHINDEX_V16QI FIRSTMATCHINDEX_VSC
1610 unsigned int __builtin_vec_first_match_index (vuc, vuc);
1611 VFIRSTMATCHINDEX_V16QI FIRSTMATCHINDEX_VUC
1612 unsigned int __builtin_vec_first_match_index (vss, vss);
1613 VFIRSTMATCHINDEX_V8HI FIRSTMATCHINDEX_VSS
1614 unsigned int __builtin_vec_first_match_index (vus, vus);
1615 VFIRSTMATCHINDEX_V8HI FIRSTMATCHINDEX_VUS
1616 unsigned int __builtin_vec_first_match_index (vsi, vsi);
1617 VFIRSTMATCHINDEX_V4SI FIRSTMATCHINDEX_VSI
1618 unsigned int __builtin_vec_first_match_index (vui, vui);
1619 VFIRSTMATCHINDEX_V4SI FIRSTMATCHINDEX_VUI
1620
7e836079 1621[VEC_FIRSTMATCHOREOSINDEX, vec_first_match_or_eos_index, __builtin_vec_first_match_or_eos_index]
e2693a72
BS
1622 unsigned int __builtin_vec_first_match_or_eos_index (vsc, vsc);
1623 VFIRSTMATCHOREOSINDEX_V16QI FIRSTMATCHOREOSINDEX_VSC
1624 unsigned int __builtin_vec_first_match_or_eos_index (vuc, vuc);
1625 VFIRSTMATCHOREOSINDEX_V16QI FIRSTMATCHOREOSINDEX_VUC
1626 unsigned int __builtin_vec_first_match_or_eos_index (vss, vss);
1627 VFIRSTMATCHOREOSINDEX_V8HI FIRSTMATCHOREOSINDEX_VSS
1628 unsigned int __builtin_vec_first_match_or_eos_index (vus, vus);
1629 VFIRSTMATCHOREOSINDEX_V8HI FIRSTMATCHOREOSINDEX_VUS
1630 unsigned int __builtin_vec_first_match_or_eos_index (vsi, vsi);
1631 VFIRSTMATCHOREOSINDEX_V4SI FIRSTMATCHOREOSINDEX_VSI
1632 unsigned int __builtin_vec_first_match_or_eos_index (vui, vui);
1633 VFIRSTMATCHOREOSINDEX_V4SI FIRSTMATCHOREOSINDEX_VUI
1634
7e836079 1635[VEC_FIRSTMISMATCHINDEX, vec_first_mismatch_index, __builtin_vec_first_mismatch_index]
e2693a72
BS
1636 unsigned int __builtin_vec_first_mismatch_index (vsc, vsc);
1637 VFIRSTMISMATCHINDEX_V16QI FIRSTMISMATCHINDEX_VSC
1638 unsigned int __builtin_vec_first_mismatch_index (vuc, vuc);
1639 VFIRSTMISMATCHINDEX_V16QI FIRSTMISMATCHINDEX_VUC
1640 unsigned int __builtin_vec_first_mismatch_index (vss, vss);
1641 VFIRSTMISMATCHINDEX_V8HI FIRSTMISMATCHINDEX_VSS
1642 unsigned int __builtin_vec_first_mismatch_index (vus, vus);
1643 VFIRSTMISMATCHINDEX_V8HI FIRSTMISMATCHINDEX_VUS
1644 unsigned int __builtin_vec_first_mismatch_index (vsi, vsi);
1645 VFIRSTMISMATCHINDEX_V4SI FIRSTMISMATCHINDEX_VSI
1646 unsigned int __builtin_vec_first_mismatch_index (vui, vui);
1647 VFIRSTMISMATCHINDEX_V4SI FIRSTMISMATCHINDEX_VUI
1648
7e836079 1649[VEC_FIRSTMISMATCHOREOSINDEX, vec_first_mismatch_or_eos_index, __builtin_vec_first_mismatch_or_eos_index]
e2693a72
BS
1650 unsigned int __builtin_vec_first_mismatch_or_eos_index (vsc, vsc);
1651 VFIRSTMISMATCHOREOSINDEX_V16QI FIRSTMISMATCHOREOSINDEX_VSC
1652 unsigned int __builtin_vec_first_mismatch_or_eos_index (vuc, vuc);
1653 VFIRSTMISMATCHOREOSINDEX_V16QI FIRSTMISMATCHOREOSINDEX_VUC
1654 unsigned int __builtin_vec_first_mismatch_or_eos_index (vss, vss);
1655 VFIRSTMISMATCHOREOSINDEX_V8HI FIRSTMISMATCHOREOSINDEX_VSS
1656 unsigned int __builtin_vec_first_mismatch_or_eos_index (vus, vus);
1657 VFIRSTMISMATCHOREOSINDEX_V8HI FIRSTMISMATCHOREOSINDEX_VUS
1658 unsigned int __builtin_vec_first_mismatch_or_eos_index (vsi, vsi);
1659 VFIRSTMISMATCHOREOSINDEX_V4SI FIRSTMISMATCHOREOSINDEX_VSI
1660 unsigned int __builtin_vec_first_mismatch_or_eos_index (vui, vui);
1661 VFIRSTMISMATCHOREOSINDEX_V4SI FIRSTMISMATCHOREOSINDEX_VUI
1662
1663[VEC_FLOAT, vec_float, __builtin_vec_float]
1664 vf __builtin_vec_float (vsi);
1665 XVCVSXWSP
1666 vf __builtin_vec_float (vui);
1667 XVCVUXWSP
1668
1669[VEC_FLOAT2, vec_float2, __builtin_vec_float2]
1670 vf __builtin_vec_float2 (vsll, vsll);
1671 FLOAT2_V2DI
1672 vf __builtin_vec_float2 (vull, vull);
1673 UNS_FLOAT2_V2DI
1674 vf __builtin_vec_float2 (vd, vd);
1675 FLOAT2_V2DF
1676
1677[VEC_FLOATE, vec_floate, __builtin_vec_floate]
1678 vf __builtin_vec_floate (vsll);
1679 FLOATE_V2DI
1680 vf __builtin_vec_floate (vull);
1681 UNS_FLOATE_V2DI
1682 vf __builtin_vec_floate (vd);
1683 FLOATE_V2DF
1684
1685[VEC_FLOATO, vec_floato, __builtin_vec_floato]
1686 vf __builtin_vec_floato (vsll);
1687 FLOATO_V2DI
1688 vf __builtin_vec_floato (vull);
1689 UNS_FLOATO_V2DI
1690 vf __builtin_vec_floato (vd);
1691 FLOATO_V2DF
1692
1693[VEC_FLOOR, vec_floor, __builtin_vec_floor]
1694 vf __builtin_vec_floor (vf);
1695 VRFIM
1696 vd __builtin_vec_floor (vd);
1697 XVRDPIM
1698
7e836079 1699[VEC_GB, vec_gb, __builtin_vec_vgbbd]
e2693a72
BS
1700 vsc __builtin_vec_vgbbd (vsc);
1701 VGBBD VGBBD_S
1702 vuc __builtin_vec_vgbbd (vuc);
1703 VGBBD VGBBD_U
1704
7e836079 1705[VEC_GENBM, vec_genbm, __builtin_vec_mtvsrbm]
e2693a72
BS
1706 vuc __builtin_vec_mtvsrbm (unsigned long long);
1707 MTVSRBM
1708
7e836079 1709[VEC_GENHM, vec_genhm, __builtin_vec_mtvsrhm]
e2693a72
BS
1710 vus __builtin_vec_mtvsrhm (unsigned long long);
1711 MTVSRHM
1712
7e836079 1713[VEC_GENWM, vec_genwm, __builtin_vec_mtvsrwm]
e2693a72
BS
1714 vui __builtin_vec_mtvsrwm (unsigned long long);
1715 MTVSRWM
1716
7e836079 1717[VEC_GENDM, vec_gendm, __builtin_vec_mtvsrdm]
e2693a72
BS
1718 vull __builtin_vec_mtvsrdm (unsigned long long);
1719 MTVSRDM
1720
7e836079 1721[VEC_GENQM, vec_genqm, __builtin_vec_mtvsrqm]
e2693a72
BS
1722 vuq __builtin_vec_mtvsrqm (unsigned long long);
1723 MTVSRQM
1724
7e836079 1725[VEC_GENPCVM, vec_genpcvm, __builtin_vec_xxgenpcvm]
e2693a72
BS
1726 vuc __builtin_vec_xxgenpcvm (vuc, const int);
1727 XXGENPCVM_V16QI
1728 vus __builtin_vec_xxgenpcvm (vus, const int);
1729 XXGENPCVM_V8HI
1730 vui __builtin_vec_xxgenpcvm (vui, const int);
1731 XXGENPCVM_V4SI
1732 vull __builtin_vec_xxgenpcvm (vull, const int);
1733 XXGENPCVM_V2DI
1734
7e836079 1735[VEC_GNB, vec_gnb, __builtin_vec_gnb]
e2693a72
BS
1736 unsigned long long __builtin_vec_gnb (vuq, const int);
1737 VGNB
1738
1739; There are no actual builtins for vec_insert. There is special handling for
e53b6e56 1740; this in altivec_resolve_overloaded_builtin in rs6000-c.cc, where the call
e2693a72
BS
1741; is replaced by "pointer tricks." The single overload here causes
1742; __builtin_vec_insert to be registered with the front end so this can happen.
1743[VEC_INSERT, vec_insert, __builtin_vec_insert]
1744 vsi __builtin_vec_insert (vsi, vsi, signed int);
1745 XXPERMDI_4SI INSERT_FAKERY
1746
7e836079 1747[VEC_INSERTH, vec_inserth, __builtin_vec_inserth]
e2693a72
BS
1748 vuc __builtin_vec_inserth (unsigned char, vuc, unsigned int);
1749 VINSERTGPRBR
1750 vuc __builtin_vec_inserth (vuc, vuc, unsigned int);
1751 VINSERTVPRBR
1752 vus __builtin_vec_inserth (unsigned short, vus, unsigned int);
1753 VINSERTGPRHR
1754 vus __builtin_vec_inserth (vus, vus, unsigned int);
1755 VINSERTVPRHR
1756 vui __builtin_vec_inserth (unsigned int, vui, unsigned int);
1757 VINSERTGPRWR
1758 vui __builtin_vec_inserth (vui, vui, unsigned int);
1759 VINSERTVPRWR
1760 vull __builtin_vec_inserth (unsigned long long, vull, unsigned int);
1761 VINSERTGPRDR
1762
7e836079 1763[VEC_INSERTL, vec_insertl, __builtin_vec_insertl]
e2693a72
BS
1764 vuc __builtin_vec_insertl (unsigned char, vuc, unsigned int);
1765 VINSERTGPRBL
1766 vuc __builtin_vec_insertl (vuc, vuc, unsigned int);
1767 VINSERTVPRBL
1768 vus __builtin_vec_insertl (unsigned short, vus, unsigned int);
1769 VINSERTGPRHL
1770 vus __builtin_vec_insertl (vus, vus, unsigned int);
1771 VINSERTVPRHL
1772 vui __builtin_vec_insertl (unsigned int, vui, unsigned int);
1773 VINSERTGPRWL
1774 vui __builtin_vec_insertl (vui, vui, unsigned int);
1775 VINSERTVPRWL
1776 vull __builtin_vec_insertl (unsigned long long, vull, unsigned int);
1777 VINSERTGPRDL
1778
7e836079 1779[VEC_INSERT4B, vec_insert4b, __builtin_vec_insert4b]
e2693a72
BS
1780 vuc __builtin_vec_insert4b (vsi, vuc, const int);
1781 INSERT4B INSERT4B_S
1782 vuc __builtin_vec_insert4b (vui, vuc, const int);
1783 INSERT4B INSERT4B_U
1784
1785[VEC_LD, vec_ld, __builtin_vec_ld]
1786 vsc __builtin_vec_ld (signed long, const vsc *);
1787 LVX_V16QI LVX_V16QI_VSC
1788 vsc __builtin_vec_ld (signed long, const signed char *);
1789 LVX_V16QI LVX_V16QI_SC
1790 vuc __builtin_vec_ld (signed long, const vuc *);
1791 LVX_V16QI LVX_V16QI_VUC
1792 vuc __builtin_vec_ld (signed long, const unsigned char *);
1793 LVX_V16QI LVX_V16QI_UC
1794 vbc __builtin_vec_ld (signed long, const vbc *);
1795 LVX_V16QI LVX_V16QI_VBC
1796 vss __builtin_vec_ld (signed long, const vss *);
1797 LVX_V8HI LVX_V8HI_VSS
1798 vss __builtin_vec_ld (signed long, const signed short *);
1799 LVX_V8HI LVX_V8HI_SS
1800 vus __builtin_vec_ld (signed long, const vus *);
1801 LVX_V8HI LVX_V8HI_VUS
1802 vus __builtin_vec_ld (signed long, const unsigned short *);
1803 LVX_V8HI LVX_V8HI_US
1804 vbs __builtin_vec_ld (signed long, const vbs *);
1805 LVX_V8HI LVX_V8HI_VBS
1806 vp __builtin_vec_ld (signed long, const vp *);
1807 LVX_V8HI LVX_V8HI_VP
1808 vsi __builtin_vec_ld (signed long, const vsi *);
1809 LVX_V4SI LVX_V4SI_VSI
1810 vsi __builtin_vec_ld (signed long, const signed int *);
1811 LVX_V4SI LVX_V4SI_SI
1812 vui __builtin_vec_ld (signed long, const vui *);
1813 LVX_V4SI LVX_V4SI_VUI
1814 vui __builtin_vec_ld (signed long, const unsigned int *);
1815 LVX_V4SI LVX_V4SI_UI
1816 vbi __builtin_vec_ld (signed long, const vbi *);
1817 LVX_V4SI LVX_V4SI_VBI
1818 vsll __builtin_vec_ld (signed long, const vsll *);
1819 LVX_V2DI LVX_V2DI_VSLL
1820 vsll __builtin_vec_ld (signed long, const signed long long *);
1821 LVX_V2DI LVX_V2DI_SLL
1822 vull __builtin_vec_ld (signed long, const vull *);
1823 LVX_V2DI LVX_V2DI_VULL
1824 vull __builtin_vec_ld (signed long, const unsigned long long *);
1825 LVX_V2DI LVX_V2DI_ULL
1826 vbll __builtin_vec_ld (signed long, const vbll *);
1827 LVX_V2DI LVX_V2DI_VBLL
1828 vsq __builtin_vec_ld (signed long, const vsq *);
1829 LVX_V1TI LVX_V1TI_VSQ
1830 vuq __builtin_vec_ld (signed long, const vuq *);
1831 LVX_V1TI LVX_V1TI_VUQ
1832 vsq __builtin_vec_ld (signed long, const __int128 *);
1833 LVX_V1TI LVX_V1TI_TI
1834 vuq __builtin_vec_ld (signed long, const unsigned __int128 *);
1835 LVX_V1TI LVX_V1TI_UTI
1836 vf __builtin_vec_ld (signed long, const vf *);
1837 LVX_V4SF LVX_V4SF_VF
1838 vf __builtin_vec_ld (signed long, const float *);
1839 LVX_V4SF LVX_V4SF_F
1840 vd __builtin_vec_ld (signed long, const vd *);
1841 LVX_V2DF LVX_V2DF_VD
1842 vd __builtin_vec_ld (signed long, const double *);
1843 LVX_V2DF LVX_V2DF_D
1844; The following variants are deprecated.
1845 vsi __builtin_vec_ld (signed long, const long *);
1846 LVX_V4SI LVX_V4SI_SL
1847 vui __builtin_vec_ld (signed long, const unsigned long *);
1848 LVX_V4SI LVX_V4SI_UL
1849
1850[VEC_LDE, vec_lde, __builtin_vec_lde]
1851 vsc __builtin_vec_lde (signed long, const signed char *);
1852 LVEBX LVEBX_SC
1853 vuc __builtin_vec_lde (signed long, const unsigned char *);
1854 LVEBX LVEBX_UC
1855 vss __builtin_vec_lde (signed long, const signed short *);
1856 LVEHX LVEHX_SS
1857 vus __builtin_vec_lde (signed long, const unsigned short *);
1858 LVEHX LVEHX_US
1859 vsi __builtin_vec_lde (signed long, const signed int *);
1860 LVEWX LVEWX_SI
1861 vui __builtin_vec_lde (signed long, const unsigned int *);
1862 LVEWX LVEWX_UI
1863 vf __builtin_vec_lde (signed long, const float *);
1864 LVEWX LVEWX_F
1865; The following variants are deprecated.
1866 vsi __builtin_vec_lde (signed long, const long *);
1867 LVEWX LVEWX_SL
1868 vui __builtin_vec_lde (signed long, const unsigned long *);
1869 LVEWX LVEWX_UL
1870
1871[VEC_LDL, vec_ldl, __builtin_vec_ldl]
1872 vsc __builtin_vec_ldl (signed long, const vsc *);
1873 LVXL_V16QI LVXL_V16QI_VSC
1874 vsc __builtin_vec_ldl (signed long, const signed char *);
1875 LVXL_V16QI LVXL_V16QI_SC
1876 vuc __builtin_vec_ldl (signed long, const vuc *);
1877 LVXL_V16QI LVXL_V16QI_VUC
1878 vuc __builtin_vec_ldl (signed long, const unsigned char *);
1879 LVXL_V16QI LVXL_V16QI_UC
1880 vbc __builtin_vec_ldl (signed long, const vbc *);
1881 LVXL_V16QI LVXL_V16QI_VBC
1882 vss __builtin_vec_ldl (signed long, const vss *);
1883 LVXL_V8HI LVXL_V8HI_VSS
1884 vss __builtin_vec_ldl (signed long, const signed short *);
1885 LVXL_V8HI LVXL_V8HI_SS
1886 vus __builtin_vec_ldl (signed long, const vus *);
1887 LVXL_V8HI LVXL_V8HI_VUS
1888 vus __builtin_vec_ldl (signed long, const unsigned short *);
1889 LVXL_V8HI LVXL_V8HI_US
1890 vbs __builtin_vec_ldl (signed long, const vbs *);
1891 LVXL_V8HI LVXL_V8HI_VBS
1892 vp __builtin_vec_ldl (signed long, const vp *);
1893 LVXL_V8HI LVXL_V8HI_VP
1894 vsi __builtin_vec_ldl (signed long, const vsi *);
1895 LVXL_V4SI LVXL_V4SI_VSI
1896 vsi __builtin_vec_ldl (signed long, const signed int *);
1897 LVXL_V4SI LVXL_V4SI_SI
1898 vui __builtin_vec_ldl (signed long, const vui *);
1899 LVXL_V4SI LVXL_V4SI_VUI
1900 vui __builtin_vec_ldl (signed long, const unsigned int *);
1901 LVXL_V4SI LVXL_V4SI_UI
1902 vbi __builtin_vec_ldl (signed long, const vbi *);
1903 LVXL_V4SI LVXL_V4SI_VBI
1904 vsll __builtin_vec_ldl (signed long, const vsll *);
1905 LVXL_V2DI LVXL_V2DI_VSLL
1906 vsll __builtin_vec_ldl (signed long, const signed long long *);
1907 LVXL_V2DI LVXL_V2DI_SLL
1908 vull __builtin_vec_ldl (signed long, const vull *);
1909 LVXL_V2DI LVXL_V2DI_VULL
1910 vull __builtin_vec_ldl (signed long, const unsigned long long *);
1911 LVXL_V2DI LVXL_V2DI_ULL
1912 vbll __builtin_vec_ldl (signed long, const vbll *);
1913 LVXL_V2DI LVXL_V2DI_VBLL
1914 vf __builtin_vec_ldl (signed long, const vf *);
1915 LVXL_V4SF LVXL_V4SF_VF
1916 vf __builtin_vec_ldl (signed long, const float *);
1917 LVXL_V4SF LVXL_V4SF_F
1918 vd __builtin_vec_ldl (signed long, const vd *);
1919 LVXL_V2DF LVXL_V2DF_VD
1920 vd __builtin_vec_ldl (signed long, const double *);
1921 LVXL_V2DF LVXL_V2DF_D
1922
1923[VEC_LOGE, vec_loge, __builtin_vec_loge]
1924 vf __builtin_vec_loge (vf);
1925 VLOGEFP
1926
1927[VEC_LVLX, vec_lvlx, __builtin_vec_lvlx, __PPU__]
1928 vbc __builtin_vec_lvlx (signed long, const vbc *);
1929 LVLX LVLX_VBC
1930 vsc __builtin_vec_lvlx (signed long, const vsc *);
1931 LVLX LVLX_VSC
1932 vsc __builtin_vec_lvlx (signed long, const signed char *);
1933 LVLX LVLX_SC
1934 vuc __builtin_vec_lvlx (signed long, const vuc *);
1935 LVLX LVLX_VUC
1936 vuc __builtin_vec_lvlx (signed long, const unsigned char *);
1937 LVLX LVLX_UC
1938 vbs __builtin_vec_lvlx (signed long, const vbs *);
1939 LVLX LVLX_VBS
1940 vss __builtin_vec_lvlx (signed long, const vss *);
1941 LVLX LVLX_VSS
1942 vss __builtin_vec_lvlx (signed long, const signed short *);
1943 LVLX LVLX_SS
1944 vus __builtin_vec_lvlx (signed long, const vus *);
1945 LVLX LVLX_VUS
1946 vus __builtin_vec_lvlx (signed long, const unsigned short *);
1947 LVLX LVLX_US
1948 vp __builtin_vec_lvlx (signed long, const vp *);
1949 LVLX LVLX_VP
1950 vbi __builtin_vec_lvlx (signed long, const vbi *);
1951 LVLX LVLX_VBI
1952 vsi __builtin_vec_lvlx (signed long, const vsi *);
1953 LVLX LVLX_VSI
1954 vsi __builtin_vec_lvlx (signed long, const signed int *);
1955 LVLX LVLX_SI
1956 vui __builtin_vec_lvlx (signed long, const vui *);
1957 LVLX LVLX_VUI
1958 vui __builtin_vec_lvlx (signed long, const unsigned int *);
1959 LVLX LVLX_UI
1960 vf __builtin_vec_lvlx (signed long, const vf *);
1961 LVLX LVLX_VF
1962 vf __builtin_vec_lvlx (signed long, const float *);
1963 LVLX LVLX_F
1964
1965[VEC_LVLXL, vec_lvlxl, __builtin_vec_lvlxl, __PPU__]
1966 vbc __builtin_vec_lvlxl (signed long, const vbc *);
1967 LVLXL LVLXL_VBC
1968 vsc __builtin_vec_lvlxl (signed long, const vsc *);
1969 LVLXL LVLXL_VSC
1970 vsc __builtin_vec_lvlxl (signed long, const signed char *);
1971 LVLXL LVLXL_SC
1972 vuc __builtin_vec_lvlxl (signed long, const vuc *);
1973 LVLXL LVLXL_VUC
1974 vuc __builtin_vec_lvlxl (signed long, const unsigned char *);
1975 LVLXL LVLXL_UC
1976 vbs __builtin_vec_lvlxl (signed long, const vbs *);
1977 LVLXL LVLXL_VBS
1978 vss __builtin_vec_lvlxl (signed long, const vss *);
1979 LVLXL LVLXL_VSS
1980 vss __builtin_vec_lvlxl (signed long, const signed short *);
1981 LVLXL LVLXL_SS
1982 vus __builtin_vec_lvlxl (signed long, const vus *);
1983 LVLXL LVLXL_VUS
1984 vus __builtin_vec_lvlxl (signed long, const unsigned short *);
1985 LVLXL LVLXL_US
1986 vp __builtin_vec_lvlxl (signed long, const vp *);
1987 LVLXL LVLXL_VP
1988 vbi __builtin_vec_lvlxl (signed long, const vbi *);
1989 LVLXL LVLXL_VBI
1990 vsi __builtin_vec_lvlxl (signed long, const vsi *);
1991 LVLXL LVLXL_VSI
1992 vsi __builtin_vec_lvlxl (signed long, const signed int *);
1993 LVLXL LVLXL_SI
1994 vui __builtin_vec_lvlxl (signed long, const vui *);
1995 LVLXL LVLXL_VUI
1996 vui __builtin_vec_lvlxl (signed long, const unsigned int *);
1997 LVLXL LVLXL_UI
1998 vf __builtin_vec_lvlxl (signed long, const vf *);
1999 LVLXL LVLXL_VF
2000 vf __builtin_vec_lvlxl (signed long, const float *);
2001 LVLXL LVLXL_F
2002
2003[VEC_LVRX, vec_lvrx, __builtin_vec_lvrx, __PPU__]
2004 vbc __builtin_vec_lvrx (signed long, const vbc *);
2005 LVRX LVRX_VBC
2006 vsc __builtin_vec_lvrx (signed long, const vsc *);
2007 LVRX LVRX_VSC
2008 vsc __builtin_vec_lvrx (signed long, const signed char *);
2009 LVRX LVRX_SC
2010 vuc __builtin_vec_lvrx (signed long, const vuc *);
2011 LVRX LVRX_VUC
2012 vuc __builtin_vec_lvrx (signed long, const unsigned char *);
2013 LVRX LVRX_UC
2014 vbs __builtin_vec_lvrx (signed long, const vbs *);
2015 LVRX LVRX_VBS
2016 vss __builtin_vec_lvrx (signed long, const vss *);
2017 LVRX LVRX_VSS
2018 vss __builtin_vec_lvrx (signed long, const signed short *);
2019 LVRX LVRX_SS
2020 vus __builtin_vec_lvrx (signed long, const vus *);
2021 LVRX LVRX_VUS
2022 vus __builtin_vec_lvrx (signed long, const unsigned short *);
2023 LVRX LVRX_US
2024 vp __builtin_vec_lvrx (signed long, const vp *);
2025 LVRX LVRX_VP
2026 vbi __builtin_vec_lvrx (signed long, const vbi *);
2027 LVRX LVRX_VBI
2028 vsi __builtin_vec_lvrx (signed long, const vsi *);
2029 LVRX LVRX_VSI
2030 vsi __builtin_vec_lvrx (signed long, const signed int *);
2031 LVRX LVRX_SI
2032 vui __builtin_vec_lvrx (signed long, const vui *);
2033 LVRX LVRX_VUI
2034 vui __builtin_vec_lvrx (signed long, const unsigned int *);
2035 LVRX LVRX_UI
2036 vf __builtin_vec_lvrx (signed long, const vf *);
2037 LVRX LVRX_VF
2038 vf __builtin_vec_lvrx (signed long, const float *);
2039 LVRX LVRX_F
2040
2041[VEC_LVRXL, vec_lvrxl, __builtin_vec_lvrxl, __PPU__]
2042 vbc __builtin_vec_lvrxl (signed long, const vbc *);
2043 LVRXL LVRXL_VBC
2044 vsc __builtin_vec_lvrxl (signed long, const vsc *);
2045 LVRXL LVRXL_VSC
2046 vsc __builtin_vec_lvrxl (signed long, const signed char *);
2047 LVRXL LVRXL_SC
2048 vuc __builtin_vec_lvrxl (signed long, const vuc *);
2049 LVRXL LVRXL_VUC
2050 vuc __builtin_vec_lvrxl (signed long, const unsigned char *);
2051 LVRXL LVRXL_UC
2052 vbs __builtin_vec_lvrxl (signed long, const vbs *);
2053 LVRXL LVRXL_VBS
2054 vss __builtin_vec_lvrxl (signed long, const vss *);
2055 LVRXL LVRXL_VSS
2056 vss __builtin_vec_lvrxl (signed long, const signed short *);
2057 LVRXL LVRXL_SS
2058 vus __builtin_vec_lvrxl (signed long, const vus *);
2059 LVRXL LVRXL_VUS
2060 vus __builtin_vec_lvrxl (signed long, const unsigned short *);
2061 LVRXL LVRXL_US
2062 vp __builtin_vec_lvrxl (signed long, const vp *);
2063 LVRXL LVRXL_VP
2064 vbi __builtin_vec_lvrxl (signed long, const vbi *);
2065 LVRXL LVRXL_VBI
2066 vsi __builtin_vec_lvrxl (signed long, const vsi *);
2067 LVRXL LVRXL_VSI
2068 vsi __builtin_vec_lvrxl (signed long, const signed int *);
2069 LVRXL LVRXL_SI
2070 vui __builtin_vec_lvrxl (signed long, const vui *);
2071 LVRXL LVRXL_VUI
2072 vui __builtin_vec_lvrxl (signed long, const unsigned int *);
2073 LVRXL LVRXL_UI
2074 vf __builtin_vec_lvrxl (signed long, const vf *);
2075 LVRXL LVRXL_VF
2076 vf __builtin_vec_lvrxl (signed long, const float *);
2077 LVRXL LVRXL_F
2078
2079[VEC_LVSL, vec_lvsl, __builtin_vec_lvsl]
2080 vuc __builtin_vec_lvsl (signed long, const unsigned char *);
2081 LVSL LVSL_UC
2082 vuc __builtin_vec_lvsl (signed long, const signed char *);
2083 LVSL LVSL_SC
2084 vuc __builtin_vec_lvsl (signed long, const char *);
2085 LVSL LVSL_STR
2086 vuc __builtin_vec_lvsl (signed long, const unsigned short *);
2087 LVSL LVSL_US
2088 vuc __builtin_vec_lvsl (signed long, const signed short *);
2089 LVSL LVSL_SS
2090 vuc __builtin_vec_lvsl (signed long, const unsigned int *);
2091 LVSL LVSL_UI
2092 vuc __builtin_vec_lvsl (signed long, const signed int *);
2093 LVSL LVSL_SI
2094 vuc __builtin_vec_lvsl (signed long, const unsigned long *);
2095 LVSL LVSL_UL
2096 vuc __builtin_vec_lvsl (signed long, const signed long *);
2097 LVSL LVSL_SL
2098 vuc __builtin_vec_lvsl (signed long, const unsigned long long *);
2099 LVSL LVSL_ULL
2100 vuc __builtin_vec_lvsl (signed long, const signed long long *);
2101 LVSL LVSL_SLL
2102 vuc __builtin_vec_lvsl (signed long, const float *);
2103 LVSL LVSL_F
2104 vuc __builtin_vec_lvsl (signed long, const double *);
2105 LVSL LVSL_D
2106
2107[VEC_LVSR, vec_lvsr, __builtin_vec_lvsr]
2108 vuc __builtin_vec_lvsr (signed long, const unsigned char *);
2109 LVSR LVSR_UC
2110 vuc __builtin_vec_lvsr (signed long, const signed char *);
2111 LVSR LVSR_SC
2112 vuc __builtin_vec_lvsr (signed long, const char *);
2113 LVSR LVSR_STR
2114 vuc __builtin_vec_lvsr (signed long, const unsigned short *);
2115 LVSR LVSR_US
2116 vuc __builtin_vec_lvsr (signed long, const signed short *);
2117 LVSR LVSR_SS
2118 vuc __builtin_vec_lvsr (signed long, const unsigned int *);
2119 LVSR LVSR_UI
2120 vuc __builtin_vec_lvsr (signed long, const signed int *);
2121 LVSR LVSR_SI
2122 vuc __builtin_vec_lvsr (signed long, const unsigned long *);
2123 LVSR LVSR_UL
2124 vuc __builtin_vec_lvsr (signed long, const signed long *);
2125 LVSR LVSR_SL
2126 vuc __builtin_vec_lvsr (signed long, const unsigned long long *);
2127 LVSR LVSR_ULL
2128 vuc __builtin_vec_lvsr (signed long, const signed long long *);
2129 LVSR LVSR_SLL
2130 vuc __builtin_vec_lvsr (signed long, const float *);
2131 LVSR LVSR_F
2132 vuc __builtin_vec_lvsr (signed long, const double *);
2133 LVSR LVSR_D
2134
7e836079 2135[VEC_LXVL, vec_xl_len, __builtin_vec_lxvl]
e2693a72
BS
2136 vsc __builtin_vec_lxvl (const signed char *, unsigned int);
2137 LXVL LXVL_VSC
2138 vuc __builtin_vec_lxvl (const unsigned char *, unsigned int);
2139 LXVL LXVL_VUC
2140 vss __builtin_vec_lxvl (const signed short *, unsigned int);
2141 LXVL LXVL_VSS
2142 vus __builtin_vec_lxvl (const unsigned short *, unsigned int);
2143 LXVL LXVL_VUS
2144 vsi __builtin_vec_lxvl (const signed int *, unsigned int);
2145 LXVL LXVL_VSI
2146 vui __builtin_vec_lxvl (const unsigned int *, unsigned int);
2147 LXVL LXVL_VUI
2148 vsll __builtin_vec_lxvl (const signed long long *, unsigned int);
2149 LXVL LXVL_VSLL
2150 vull __builtin_vec_lxvl (const unsigned long long *, unsigned int);
2151 LXVL LXVL_VULL
2152 vsq __builtin_vec_lxvl (const signed __int128 *, unsigned int);
2153 LXVL LXVL_VSQ
2154 vuq __builtin_vec_lxvl (const unsigned __int128 *, unsigned int);
2155 LXVL LXVL_VUQ
2156 vf __builtin_vec_lxvl (const float *, unsigned int);
2157 LXVL LXVL_VF
2158 vd __builtin_vec_lxvl (const double *, unsigned int);
2159 LXVL LXVL_VD
2160
2161[VEC_MADD, vec_madd, __builtin_vec_madd]
2162 vss __builtin_vec_madd (vss, vss, vss);
2163 VMLADDUHM VMLADDUHM_VSS
2164 vss __builtin_vec_madd (vss, vus, vus);
2165 VMLADDUHM VMLADDUHM_VSSVUS
2166 vss __builtin_vec_madd (vus, vss, vss);
2167 VMLADDUHM VMLADDUHM_VUSVSS
2168 vus __builtin_vec_madd (vus, vus, vus);
2169 VMLADDUHM VMLADDUHM_VUS
2170 vf __builtin_vec_madd (vf, vf, vf);
2171 VMADDFP
2172 vd __builtin_vec_madd (vd, vd, vd);
2173 XVMADDDP
2174
2175[VEC_MADDS, vec_madds, __builtin_vec_madds]
2176 vss __builtin_vec_madds (vss, vss, vss);
2177 VMHADDSHS
2178
2179[VEC_MAX, vec_max, __builtin_vec_max]
2180 vsc __builtin_vec_max (vsc, vsc);
2181 VMAXSB
2182 vuc __builtin_vec_max (vuc, vuc);
2183 VMAXUB
2184 vss __builtin_vec_max (vss, vss);
2185 VMAXSH
2186 vus __builtin_vec_max (vus, vus);
2187 VMAXUH
2188 vsi __builtin_vec_max (vsi, vsi);
2189 VMAXSW
2190 vui __builtin_vec_max (vui, vui);
2191 VMAXUW
2192 vsll __builtin_vec_max (vsll, vsll);
2193 VMAXSD
2194 vull __builtin_vec_max (vull, vull);
2195 VMAXUD
2196 vf __builtin_vec_max (vf, vf);
2197 VMAXFP
2198 vd __builtin_vec_max (vd, vd);
2199 XVMAXDP
2200; The following variants are deprecated.
2201 vsc __builtin_vec_max (vsc, vbc);
2202 VMAXSB VMAXSB_SB
2203 vsc __builtin_vec_max (vbc, vsc);
2204 VMAXSB VMAXSB_BS
2205 vuc __builtin_vec_max (vuc, vbc);
2206 VMAXUB VMAXUB_UB
2207 vuc __builtin_vec_max (vbc, vuc);
2208 VMAXUB VMAXUB_BU
2209 vss __builtin_vec_max (vss, vbs);
2210 VMAXSH VMAXSH_SB
2211 vss __builtin_vec_max (vbs, vss);
2212 VMAXSH VMAXSH_BS
2213 vus __builtin_vec_max (vus, vbs);
2214 VMAXUH VMAXUH_UB
2215 vus __builtin_vec_max (vbs, vus);
2216 VMAXUH VMAXUH_BU
2217 vsi __builtin_vec_max (vsi, vbi);
2218 VMAXSW VMAXSW_SB
2219 vsi __builtin_vec_max (vbi, vsi);
2220 VMAXSW VMAXSW_BS
2221 vui __builtin_vec_max (vui, vbi);
2222 VMAXUW VMAXUW_UB
2223 vui __builtin_vec_max (vbi, vui);
2224 VMAXUW VMAXUW_BU
2225 vsll __builtin_vec_max (vsll, vbll);
2226 VMAXSD VMAXSD_SB
2227 vsll __builtin_vec_max (vbll, vsll);
2228 VMAXSD VMAXSD_BS
2229 vull __builtin_vec_max (vull, vbll);
2230 VMAXUD VMAXUD_UB
2231 vull __builtin_vec_max (vbll, vull);
2232 VMAXUD VMAXUD_BU
2233
7e836079 2234[VEC_MERGEE, vec_mergee, __builtin_vec_vmrgew]
e2693a72
BS
2235 vsi __builtin_vec_vmrgew (vsi, vsi);
2236 VMRGEW_V4SI VMRGEW_VSI
2237 vui __builtin_vec_vmrgew (vui, vui);
2238 VMRGEW_V4SI VMRGEW_VUI
2239 vbi __builtin_vec_vmrgew (vbi, vbi);
2240 VMRGEW_V4SI VMRGEW_VBI
2241 vsll __builtin_vec_vmrgew (vsll, vsll);
2242 VMRGEW_V2DI VMRGEW_VSLL
2243 vull __builtin_vec_vmrgew (vull, vull);
2244 VMRGEW_V2DI VMRGEW_VULL
2245 vbll __builtin_vec_vmrgew (vbll, vbll);
2246 VMRGEW_V2DI VMRGEW_VBLL
2247 vf __builtin_vec_vmrgew (vf, vf);
2248 VMRGEW_V4SF
2249 vd __builtin_vec_vmrgew (vd, vd);
2250 VMRGEW_V2DF
2251
2252[VEC_MERGEH, vec_mergeh, __builtin_vec_mergeh]
2253 vbc __builtin_vec_mergeh (vbc, vbc);
2254 VMRGHB VMRGHB_VBC
2255 vsc __builtin_vec_mergeh (vsc, vsc);
2256 VMRGHB VMRGHB_VSC
2257 vuc __builtin_vec_mergeh (vuc, vuc);
2258 VMRGHB VMRGHB_VUC
2259 vbs __builtin_vec_mergeh (vbs, vbs);
2260 VMRGHH VMRGHH_VBS
2261 vss __builtin_vec_mergeh (vss, vss);
2262 VMRGHH VMRGHH_VSS
2263 vus __builtin_vec_mergeh (vus, vus);
2264 VMRGHH VMRGHH_VUS
2265 vp __builtin_vec_mergeh (vp, vp);
2266 VMRGHH VMRGHH_VP
2267 vbi __builtin_vec_mergeh (vbi, vbi);
2268 VMRGHW VMRGHW_VBI
2269 vsi __builtin_vec_mergeh (vsi, vsi);
2270 VMRGHW VMRGHW_VSI
2271 vui __builtin_vec_mergeh (vui, vui);
2272 VMRGHW VMRGHW_VUI
2273 vbll __builtin_vec_mergeh (vbll, vbll);
2274 VEC_MERGEH_V2DI VEC_MERGEH_VBLL
2275 vsll __builtin_vec_mergeh (vsll, vsll);
2276 VEC_MERGEH_V2DI VEC_MERGEH_VSLL
2277 vull __builtin_vec_mergeh (vull, vull);
2278 VEC_MERGEH_V2DI VEC_MERGEH_VULL
2279 vf __builtin_vec_mergeh (vf, vf);
2280 VMRGHW VMRGHW_VF
2281 vd __builtin_vec_mergeh (vd, vd);
2282 VEC_MERGEH_V2DF
2283; The following variants are deprecated.
2284 vsll __builtin_vec_mergeh (vsll, vbll);
2285 VEC_MERGEH_V2DI VEC_MERGEH_VSLL_VBLL
2286 vsll __builtin_vec_mergeh (vbll, vsll);
2287 VEC_MERGEH_V2DI VEC_MERGEH_VBLL_VSLL
2288 vull __builtin_vec_mergeh (vull, vbll);
2289 VEC_MERGEH_V2DI VEC_MERGEH_VULL_VBLL
2290 vull __builtin_vec_mergeh (vbll, vull);
2291 VEC_MERGEH_V2DI VEC_MERGEH_VBLL_VULL
2292
2293[VEC_MERGEL, vec_mergel, __builtin_vec_mergel]
2294 vbc __builtin_vec_mergel (vbc, vbc);
2295 VMRGLB VMRGLB_VBC
2296 vsc __builtin_vec_mergel (vsc, vsc);
2297 VMRGLB VMRGLB_VSC
2298 vuc __builtin_vec_mergel (vuc, vuc);
2299 VMRGLB VMRGLB_VUC
2300 vbs __builtin_vec_mergel (vbs, vbs);
2301 VMRGLH VMRGLH_VBS
2302 vss __builtin_vec_mergel (vss, vss);
2303 VMRGLH VMRGLH_VSS
2304 vus __builtin_vec_mergel (vus, vus);
2305 VMRGLH VMRGLH_VUS
2306 vp __builtin_vec_mergel (vp, vp);
2307 VMRGLH VMRGLH_VP
2308 vbi __builtin_vec_mergel (vbi, vbi);
2309 VMRGLW VMRGLW_VBI
2310 vsi __builtin_vec_mergel (vsi, vsi);
2311 VMRGLW VMRGLW_VSI
2312 vui __builtin_vec_mergel (vui, vui);
2313 VMRGLW VMRGLW_VUI
2314 vbll __builtin_vec_mergel (vbll, vbll);
2315 VEC_MERGEL_V2DI VEC_MERGEL_VBLL
2316 vsll __builtin_vec_mergel (vsll, vsll);
2317 VEC_MERGEL_V2DI VEC_MERGEL_VSLL
2318 vull __builtin_vec_mergel (vull, vull);
2319 VEC_MERGEL_V2DI VEC_MERGEL_VULL
2320 vf __builtin_vec_mergel (vf, vf);
2321 VMRGLW VMRGLW_VF
2322 vd __builtin_vec_mergel (vd, vd);
2323 VEC_MERGEL_V2DF
2324; The following variants are deprecated.
2325 vsll __builtin_vec_mergel (vsll, vbll);
2326 VEC_MERGEL_V2DI VEC_MERGEL_VSLL_VBLL
2327 vsll __builtin_vec_mergel (vbll, vsll);
2328 VEC_MERGEL_V2DI VEC_MERGEL_VBLL_VSLL
2329 vull __builtin_vec_mergel (vull, vbll);
2330 VEC_MERGEL_V2DI VEC_MERGEL_VULL_VBLL
2331 vull __builtin_vec_mergel (vbll, vull);
2332 VEC_MERGEL_V2DI VEC_MERGEL_VBLL_VULL
2333
7e836079 2334[VEC_MERGEO, vec_mergeo, __builtin_vec_vmrgow]
e2693a72
BS
2335 vsi __builtin_vec_vmrgow (vsi, vsi);
2336 VMRGOW_V4SI VMRGOW_VSI
2337 vui __builtin_vec_vmrgow (vui, vui);
2338 VMRGOW_V4SI VMRGOW_VUI
2339 vbi __builtin_vec_vmrgow (vbi, vbi);
2340 VMRGOW_V4SI VMRGOW_VBI
2341 vsll __builtin_vec_vmrgow (vsll, vsll);
2342 VMRGOW_V2DI VMRGOW_VSLL
2343 vull __builtin_vec_vmrgow (vull, vull);
2344 VMRGOW_V2DI VMRGOW_VULL
2345 vbll __builtin_vec_vmrgow (vbll, vbll);
2346 VMRGOW_V2DI VMRGOW_VBLL
2347 vf __builtin_vec_vmrgow (vf, vf);
2348 VMRGOW_V4SF
2349 vd __builtin_vec_vmrgow (vd, vd);
2350 VMRGOW_V2DF
2351
2352[VEC_MFVSCR, vec_mfvscr, __builtin_vec_mfvscr]
2353 vus __builtin_vec_mfvscr ();
2354 MFVSCR
2355
2356[VEC_MIN, vec_min, __builtin_vec_min]
2357 vsc __builtin_vec_min (vsc, vsc);
2358 VMINSB
2359 vuc __builtin_vec_min (vuc, vuc);
2360 VMINUB
2361 vss __builtin_vec_min (vss, vss);
2362 VMINSH
2363 vus __builtin_vec_min (vus, vus);
2364 VMINUH
2365 vsi __builtin_vec_min (vsi, vsi);
2366 VMINSW
2367 vui __builtin_vec_min (vui, vui);
2368 VMINUW
2369 vsll __builtin_vec_min (vsll, vsll);
2370 VMINSD
2371 vull __builtin_vec_min (vull, vull);
2372 VMINUD
2373 vf __builtin_vec_min (vf, vf);
2374 VMINFP
2375 vd __builtin_vec_min (vd, vd);
2376 XVMINDP
2377; The following variants are deprecated.
2378 vsc __builtin_vec_min (vsc, vbc);
2379 VMINSB VMINSB_SB
2380 vsc __builtin_vec_min (vbc, vsc);
2381 VMINSB VMINSB_BS
2382 vuc __builtin_vec_min (vuc, vbc);
2383 VMINUB VMINUB_UB
2384 vuc __builtin_vec_min (vbc, vuc);
2385 VMINUB VMINUB_BU
2386 vss __builtin_vec_min (vss, vbs);
2387 VMINSH VMINSH_SB
2388 vss __builtin_vec_min (vbs, vss);
2389 VMINSH VMINSH_BS
2390 vus __builtin_vec_min (vus, vbs);
2391 VMINUH VMINUH_UB
2392 vus __builtin_vec_min (vbs, vus);
2393 VMINUH VMINUH_BU
2394 vsi __builtin_vec_min (vsi, vbi);
2395 VMINSW VMINSW_SB
2396 vsi __builtin_vec_min (vbi, vsi);
2397 VMINSW VMINSW_BS
2398 vui __builtin_vec_min (vui, vbi);
2399 VMINUW VMINUW_UB
2400 vui __builtin_vec_min (vbi, vui);
2401 VMINUW VMINUW_BU
2402 vsll __builtin_vec_min (vsll, vbll);
2403 VMINSD VMINSD_SB
2404 vsll __builtin_vec_min (vbll, vsll);
2405 VMINSD VMINSD_BS
2406 vull __builtin_vec_min (vull, vbll);
2407 VMINUD VMINUD_UB
2408 vull __builtin_vec_min (vbll, vull);
2409 VMINUD VMINUD_BU
2410
2411[VEC_MLADD, vec_mladd, __builtin_vec_mladd]
2412 vss __builtin_vec_mladd (vss, vss, vss);
2413 VMLADDUHM VMLADDUHM_VSS2
2414 vss __builtin_vec_mladd (vss, vus, vus);
2415 VMLADDUHM VMLADDUHM_VSSVUS2
2416 vss __builtin_vec_mladd (vus, vss, vss);
2417 VMLADDUHM VMLADDUHM_VUSVSS2
2418 vus __builtin_vec_mladd (vus, vus, vus);
2419 VMLADDUHM VMLADDUHM_VUS2
2420
7e836079 2421[VEC_MOD, vec_mod, __builtin_vec_mod]
e2693a72
BS
2422 vsi __builtin_vec_mod (vsi, vsi);
2423 VMODSW
2424 vui __builtin_vec_mod (vui, vui);
2425 VMODUW
2426 vsll __builtin_vec_mod (vsll, vsll);
2427 VMODSD
2428 vull __builtin_vec_mod (vull, vull);
2429 VMODUD
2430 vsq __builtin_vec_mod (vsq, vsq);
2431 MODS_V1TI
2432 vuq __builtin_vec_mod (vuq, vuq);
2433 MODU_V1TI
2434
2435[VEC_MRADDS, vec_mradds, __builtin_vec_mradds]
2436 vss __builtin_vec_mradds (vss, vss, vss);
2437 VMHRADDSHS
2438
7e836079 2439[VEC_MSUB, vec_msub, __builtin_vec_msub]
e2693a72
BS
2440 vf __builtin_vec_msub (vf, vf, vf);
2441 XVMSUBSP
2442 vd __builtin_vec_msub (vd, vd, vd);
2443 XVMSUBDP
2444
2445[VEC_MSUM, vec_msum, __builtin_vec_msum]
2446 vui __builtin_vec_msum (vuc, vuc, vui);
2447 VMSUMUBM
2448 vsi __builtin_vec_msum (vsc, vuc, vsi);
2449 VMSUMMBM
2450 vui __builtin_vec_msum (vus, vus, vui);
2451 VMSUMUHM
2452 vsi __builtin_vec_msum (vss, vss, vsi);
2453 VMSUMSHM
2454 vsq __builtin_vec_msum (vsll, vsll, vsq);
2455 VMSUMUDM VMSUMUDM_S
2456 vuq __builtin_vec_msum (vull, vull, vuq);
2457 VMSUMUDM VMSUMUDM_U
2458
943d631a
BS
2459[VEC_MSUMC, vec_msumc, __builtin_vec_msumc]
2460 vuq __builtin_vec_msumc (vull, vull, vuq);
2461 VMSUMCUD
2462
e2693a72
BS
2463[VEC_MSUMS, vec_msums, __builtin_vec_msums]
2464 vui __builtin_vec_msums (vus, vus, vui);
2465 VMSUMUHS
2466 vsi __builtin_vec_msums (vss, vss, vsi);
2467 VMSUMSHS
2468
2469[VEC_MTVSCR, vec_mtvscr, __builtin_vec_mtvscr]
2470 void __builtin_vec_mtvscr (vbc);
2471 MTVSCR MTVSCR_VBC
2472 void __builtin_vec_mtvscr (vsc);
2473 MTVSCR MTVSCR_VSC
2474 void __builtin_vec_mtvscr (vuc);
2475 MTVSCR MTVSCR_VUC
2476 void __builtin_vec_mtvscr (vbs);
2477 MTVSCR MTVSCR_VBS
2478 void __builtin_vec_mtvscr (vss);
2479 MTVSCR MTVSCR_VSS
2480 void __builtin_vec_mtvscr (vus);
2481 MTVSCR MTVSCR_VUS
2482 void __builtin_vec_mtvscr (vp);
2483 MTVSCR MTVSCR_VP
2484 void __builtin_vec_mtvscr (vbi);
2485 MTVSCR MTVSCR_VBI
2486 void __builtin_vec_mtvscr (vsi);
2487 MTVSCR MTVSCR_VSI
2488 void __builtin_vec_mtvscr (vui);
2489 MTVSCR MTVSCR_VUI
2490
e53b6e56 2491; Note that the entries for VEC_MUL are currently ignored. See rs6000-c.cc:
e2693a72
BS
2492; altivec_resolve_overloaded_builtin, where there is special-case code for
2493; VEC_MUL. TODO: Is this really necessary? Investigate. Seven missing
2494; prototypes here...no corresponding builtins. Also added "vmulld" in P10
2495; which could be used instead of MUL_V2DI, conditionally?
2496[VEC_MUL, vec_mul, __builtin_vec_mul]
2497 vsll __builtin_vec_mul (vsll, vsll);
2498 MUL_V2DI
2499 vf __builtin_vec_mul (vf, vf);
2500 XVMULSP
2501 vd __builtin_vec_mul (vd, vd);
2502 XVMULDP
2503
2504[VEC_MULE, vec_mule, __builtin_vec_mule]
2505 vss __builtin_vec_mule (vsc, vsc);
2506 VMULESB
2507 vus __builtin_vec_mule (vuc, vuc);
2508 VMULEUB
2509 vsi __builtin_vec_mule (vss, vss);
2510 VMULESH
2511 vui __builtin_vec_mule (vus, vus);
2512 VMULEUH
2513 vsll __builtin_vec_mule (vsi, vsi);
2514 VMULESW
2515 vull __builtin_vec_mule (vui, vui);
2516 VMULEUW
2517 vsq __builtin_vec_mule (vsll, vsll);
2518 VMULESD
2519 vuq __builtin_vec_mule (vull, vull);
2520 VMULEUD
2521
7e836079 2522[VEC_MULH, vec_mulh, __builtin_vec_mulh]
e2693a72
BS
2523 vsi __builtin_vec_mulh (vsi, vsi);
2524 VMULHSW
2525 vui __builtin_vec_mulh (vui, vui);
2526 VMULHUW
2527 vsll __builtin_vec_mulh (vsll, vsll);
2528 VMULHSD
2529 vull __builtin_vec_mulh (vull, vull);
2530 VMULHUD
2531
2532[VEC_MULO, vec_mulo, __builtin_vec_mulo]
2533 vss __builtin_vec_mulo (vsc, vsc);
2534 VMULOSB
2535 vus __builtin_vec_mulo (vuc, vuc);
2536 VMULOUB
2537 vsi __builtin_vec_mulo (vss, vss);
2538 VMULOSH
2539 vui __builtin_vec_mulo (vus, vus);
2540 VMULOUH
2541 vsll __builtin_vec_mulo (vsi, vsi);
2542 VMULOSW
2543 vull __builtin_vec_mulo (vui, vui);
2544 VMULOUW
2545 vsq __builtin_vec_mulo (vsll, vsll);
2546 VMULOSD
2547 vuq __builtin_vec_mulo (vull, vull);
2548 VMULOUD
2549
2550[VEC_NABS, vec_nabs, __builtin_vec_nabs]
2551 vsc __builtin_vec_nabs (vsc);
2552 NABS_V16QI
2553 vss __builtin_vec_nabs (vss);
2554 NABS_V8HI
2555 vsi __builtin_vec_nabs (vsi);
2556 NABS_V4SI
2557 vsll __builtin_vec_nabs (vsll);
2558 NABS_V2DI
2559 vf __builtin_vec_nabs (vf);
2560 NABS_V4SF
2561 vd __builtin_vec_nabs (vd);
2562 NABS_V2DF
2563
7e836079 2564[VEC_NAND, vec_nand, __builtin_vec_nand]
e2693a72
BS
2565 vsc __builtin_vec_nand (vsc, vsc);
2566 NAND_V16QI
2567 vuc __builtin_vec_nand (vuc, vuc);
2568 NAND_V16QI_UNS NAND_VUC
2569 vbc __builtin_vec_nand (vbc, vbc);
2570 NAND_V16QI_UNS NAND_VBC
2571 vss __builtin_vec_nand (vss, vss);
2572 NAND_V8HI
2573 vus __builtin_vec_nand (vus, vus);
2574 NAND_V8HI_UNS NAND_VUS
2575 vbs __builtin_vec_nand (vbs, vbs);
2576 NAND_V8HI_UNS NAND_VBS
2577 vsi __builtin_vec_nand (vsi, vsi);
2578 NAND_V4SI
2579 vui __builtin_vec_nand (vui, vui);
2580 NAND_V4SI_UNS NAND_VUI
2581 vbi __builtin_vec_nand (vbi, vbi);
2582 NAND_V4SI_UNS NAND_VBI
2583 vsll __builtin_vec_nand (vsll, vsll);
2584 NAND_V2DI
2585 vull __builtin_vec_nand (vull, vull);
2586 NAND_V2DI_UNS NAND_VULL
2587 vbll __builtin_vec_nand (vbll, vbll);
2588 NAND_V2DI_UNS NAND_VBLL
2589 vf __builtin_vec_nand (vf, vf);
2590 NAND_V4SF
2591 vd __builtin_vec_nand (vd, vd);
2592 NAND_V2DF
2593; The following variants are deprecated.
2594 vsc __builtin_vec_nand (vbc, vsc);
2595 NAND_V16QI NAND_VBC_VSC
2596 vsc __builtin_vec_nand (vsc, vbc);
2597 NAND_V16QI NAND_VSC_VBC
2598 vuc __builtin_vec_nand (vbc, vuc);
2599 NAND_V16QI_UNS NAND_VBC_VUC
2600 vuc __builtin_vec_nand (vuc, vbc);
2601 NAND_V16QI_UNS NAND_VUC_VBC
2602 vss __builtin_vec_nand (vbs, vss);
2603 NAND_V8HI NAND_VBS_VSS
2604 vss __builtin_vec_nand (vss, vbs);
2605 NAND_V8HI NAND_VSS_VBS
2606 vus __builtin_vec_nand (vbs, vus);
2607 NAND_V8HI_UNS NAND_VBS_VUS
2608 vus __builtin_vec_nand (vus, vbs);
2609 NAND_V8HI_UNS NAND_VUS_VBS
2610 vsi __builtin_vec_nand (vbi, vsi);
2611 NAND_V4SI NAND_VBI_VSI
2612 vsi __builtin_vec_nand (vsi, vbi);
2613 NAND_V4SI NAND_VSI_VBI
2614 vui __builtin_vec_nand (vbi, vui);
2615 NAND_V4SI_UNS NAND_VBI_VUI
2616 vui __builtin_vec_nand (vui, vbi);
2617 NAND_V4SI_UNS NAND_VUI_VBI
2618 vsll __builtin_vec_nand (vbll, vsll);
2619 NAND_V2DI NAND_VBLL_VSLL
2620 vsll __builtin_vec_nand (vsll, vbll);
2621 NAND_V2DI NAND_VSLL_VBLL
2622 vull __builtin_vec_nand (vbll, vull);
2623 NAND_V2DI_UNS NAND_VBLL_VULL
2624 vull __builtin_vec_nand (vull, vbll);
2625 NAND_V2DI_UNS NAND_VULL_VBLL
2626
7e836079 2627[VEC_NCIPHER_BE, vec_ncipher_be, __builtin_vec_vncipher_be]
e2693a72
BS
2628 vuc __builtin_vec_vncipher_be (vuc, vuc);
2629 VNCIPHER_BE
2630
7e836079 2631[VEC_NCIPHERLAST_BE, vec_ncipherlast_be, __builtin_vec_vncipherlast_be]
e2693a72
BS
2632 vuc __builtin_vec_vncipherlast_be (vuc, vuc);
2633 VNCIPHERLAST_BE
2634
7e836079 2635[VEC_NEARBYINT, vec_nearbyint, __builtin_vec_nearbyint]
e2693a72
BS
2636 vf __builtin_vec_nearbyint (vf);
2637 XVRSPI XVRSPI_NBI
2638 vd __builtin_vec_nearbyint (vd);
2639 XVRDPI XVRDPI_NBI
2640
2641[VEC_NEG, vec_neg, __builtin_vec_neg]
2642 vsc __builtin_vec_neg (vsc);
2643 NEG_V16QI
2644 vss __builtin_vec_neg (vss);
2645 NEG_V8HI
2646 vsi __builtin_vec_neg (vsi);
2647 NEG_V4SI
2648 vsll __builtin_vec_neg (vsll);
2649 NEG_V2DI
2650 vf __builtin_vec_neg (vf);
2651 NEG_V4SF
2652 vd __builtin_vec_neg (vd);
2653 NEG_V2DF
2654
7e836079 2655[VEC_NMADD, vec_nmadd, __builtin_vec_nmadd]
e2693a72
BS
2656 vf __builtin_vec_nmadd (vf, vf, vf);
2657 XVNMADDSP
2658 vd __builtin_vec_nmadd (vd, vd, vd);
2659 XVNMADDDP
2660
2661[VEC_NMSUB, vec_nmsub, __builtin_vec_nmsub]
2662 vf __builtin_vec_nmsub (vf, vf, vf);
2663 VNMSUBFP
2664 vd __builtin_vec_nmsub (vd, vd, vd);
2665 XVNMSUBDP
2666
2667[VEC_NOR, vec_nor, __builtin_vec_nor]
2668 vsc __builtin_vec_nor (vsc, vsc);
2669 VNOR_V16QI
2670 vuc __builtin_vec_nor (vuc, vuc);
2671 VNOR_V16QI_UNS VNOR_V16QI_U
2672 vbc __builtin_vec_nor (vbc, vbc);
2673 VNOR_V16QI_UNS VNOR_V16QI_B
2674 vss __builtin_vec_nor (vss, vss);
2675 VNOR_V8HI
2676 vus __builtin_vec_nor (vus, vus);
2677 VNOR_V8HI_UNS VNOR_V8HI_U
2678 vbs __builtin_vec_nor (vbs, vbs);
2679 VNOR_V8HI_UNS VNOR_V8HI_B
2680 vsi __builtin_vec_nor (vsi, vsi);
2681 VNOR_V4SI
2682 vui __builtin_vec_nor (vui, vui);
2683 VNOR_V4SI_UNS VNOR_V4SI_U
2684 vbi __builtin_vec_nor (vbi, vbi);
2685 VNOR_V4SI_UNS VNOR_V4SI_B
2686 vsll __builtin_vec_nor (vsll, vsll);
2687 VNOR_V2DI
2688 vull __builtin_vec_nor (vull, vull);
2689 VNOR_V2DI_UNS VNOR_V2DI_U
2690 vbll __builtin_vec_nor (vbll, vbll);
2691 VNOR_V2DI_UNS VNOR_V2DI_B
2692 vsq __builtin_vec_nor (vsq, vsq);
2693 VNOR_V1TI VNOR_V1TI_S
2694 vuq __builtin_vec_nor (vuq, vuq);
2695 VNOR_V1TI_UNS VNOR_V1TI_U
2696 vf __builtin_vec_nor (vf, vf);
2697 VNOR_V4SF
2698 vd __builtin_vec_nor (vd, vd);
2699 VNOR_V2DF
2700; The following variants are deprecated.
2701 vsll __builtin_vec_nor (vsll, vbll);
2702 VNOR_V2DI VNOR_VSLL_VBLL
2703 vsll __builtin_vec_nor (vbll, vsll);
2704 VNOR_V2DI VNOR_VBLL_VSLL
2705 vull __builtin_vec_nor (vull, vbll);
2706 VNOR_V2DI_UNS VNOR_VULL_VBLL
2707 vull __builtin_vec_nor (vbll, vull);
2708 VNOR_V2DI_UNS VNOR_VBLL_VULL
2709 vsq __builtin_vec_nor (vsq, vbq);
2710 VNOR_V1TI VNOR_VSQ_VBQ
2711 vsq __builtin_vec_nor (vbq, vsq);
2712 VNOR_V1TI VNOR_VBQ_VSQ
2713 vuq __builtin_vec_nor (vuq, vbq);
2714 VNOR_V1TI_UNS VNOR_VUQ_VBQ
2715 vuq __builtin_vec_nor (vbq, vuq);
2716 VNOR_V1TI_UNS VNOR_VBQ_VUQ
2717
2718[VEC_OR, vec_or, __builtin_vec_or]
2719 vsc __builtin_vec_or (vsc, vsc);
2720 VOR_V16QI
2721 vuc __builtin_vec_or (vuc, vuc);
2722 VOR_V16QI_UNS VOR_V16QI_U
2723 vbc __builtin_vec_or (vbc, vbc);
2724 VOR_V16QI_UNS VOR_V16QI_B
2725 vss __builtin_vec_or (vss, vss);
2726 VOR_V8HI
2727 vus __builtin_vec_or (vus, vus);
2728 VOR_V8HI_UNS VOR_V8HI_U
2729 vbs __builtin_vec_or (vbs, vbs);
2730 VOR_V8HI_UNS VOR_V8HI_B
2731 vsi __builtin_vec_or (vsi, vsi);
2732 VOR_V4SI
2733 vui __builtin_vec_or (vui, vui);
2734 VOR_V4SI_UNS VOR_V4SI_U
2735 vbi __builtin_vec_or (vbi, vbi);
2736 VOR_V4SI_UNS VOR_V4SI_B
2737 vsll __builtin_vec_or (vsll, vsll);
2738 VOR_V2DI
2739 vull __builtin_vec_or (vull, vull);
2740 VOR_V2DI_UNS VOR_V2DI_U
2741 vbll __builtin_vec_or (vbll, vbll);
2742 VOR_V2DI_UNS VOR_V2DI_B
2743 vf __builtin_vec_or (vf, vf);
2744 VOR_V4SF
2745 vd __builtin_vec_or (vd, vd);
2746 VOR_V2DF
2747; The following variants are deprecated.
2748 vsc __builtin_vec_or (vsc, vbc);
2749 VOR_V16QI VOR_VSC_VBC
2750 vsc __builtin_vec_or (vbc, vsc);
2751 VOR_V16QI VOR_VBC_VSC
2752 vuc __builtin_vec_or (vuc, vbc);
2753 VOR_V16QI_UNS VOR_V16QI_UB
2754 vuc __builtin_vec_or (vbc, vuc);
2755 VOR_V16QI_UNS VOR_V16QI_BU
2756 vss __builtin_vec_or (vss, vbs);
2757 VOR_V8HI VOR_VSS_VBS
2758 vss __builtin_vec_or (vbs, vss);
2759 VOR_V8HI VOR_VBS_VSS
2760 vus __builtin_vec_or (vus, vbs);
2761 VOR_V8HI_UNS VOR_V8HI_UB
2762 vus __builtin_vec_or (vbs, vus);
2763 VOR_V8HI_UNS VOR_V8HI_BU
2764 vsi __builtin_vec_or (vsi, vbi);
2765 VOR_V4SI VOR_VSI_VBI
2766 vsi __builtin_vec_or (vbi, vsi);
2767 VOR_V4SI VOR_VBI_VSI
2768 vui __builtin_vec_or (vui, vbi);
2769 VOR_V4SI_UNS VOR_V4SI_UB
2770 vui __builtin_vec_or (vbi, vui);
2771 VOR_V4SI_UNS VOR_V4SI_BU
2772 vsll __builtin_vec_or (vsll, vbll);
2773 VOR_V2DI VOR_VSLL_VBLL
2774 vsll __builtin_vec_or (vbll, vsll);
2775 VOR_V2DI VOR_VBLL_VSLL
2776 vull __builtin_vec_or (vull, vbll);
2777 VOR_V2DI_UNS VOR_V2DI_UB
2778 vull __builtin_vec_or (vbll, vull);
2779 VOR_V2DI_UNS VOR_V2DI_BU
2780 vf __builtin_vec_or (vf, vbi);
2781 VOR_V4SF VOR_VF_VBI
2782 vf __builtin_vec_or (vbi, vf);
2783 VOR_V4SF VOR_VBI_VF
2784 vd __builtin_vec_or (vd, vbll);
2785 VOR_V2DF VOR_VD_VBLL
2786 vd __builtin_vec_or (vbll, vd);
2787 VOR_V2DF VOR_VBLL_VD
2788
7e836079 2789[VEC_ORC, vec_orc, __builtin_vec_orc]
e2693a72
BS
2790 vsc __builtin_vec_orc (vsc, vsc);
2791 ORC_V16QI
2792 vuc __builtin_vec_orc (vuc, vuc);
2793 ORC_V16QI_UNS ORC_VUC
2794 vbc __builtin_vec_orc (vbc, vbc);
2795 ORC_V16QI_UNS ORC_VBC
2796 vss __builtin_vec_orc (vss, vss);
2797 ORC_V8HI
2798 vus __builtin_vec_orc (vus, vus);
2799 ORC_V8HI_UNS ORC_VUS
2800 vbs __builtin_vec_orc (vbs, vbs);
2801 ORC_V8HI_UNS ORC_VBS
2802 vsi __builtin_vec_orc (vsi, vsi);
2803 ORC_V4SI
2804 vui __builtin_vec_orc (vui, vui);
2805 ORC_V4SI_UNS ORC_VUI
2806 vbi __builtin_vec_orc (vbi, vbi);
2807 ORC_V4SI_UNS ORC_VBI
2808 vsll __builtin_vec_orc (vsll, vsll);
2809 ORC_V2DI
2810 vull __builtin_vec_orc (vull, vull);
2811 ORC_V2DI_UNS ORC_VULL
2812 vbll __builtin_vec_orc (vbll, vbll);
2813 ORC_V2DI_UNS ORC_VBLL
2814 vf __builtin_vec_orc (vf, vf);
2815 ORC_V4SF
2816 vd __builtin_vec_orc (vd, vd);
2817 ORC_V2DF
2818; The following variants are deprecated.
2819 vsc __builtin_vec_orc (vbc, vsc);
2820 ORC_V16QI ORC_VBC_VSC
2821 vsc __builtin_vec_orc (vsc, vbc);
2822 ORC_V16QI ORC_VSC_VBC
2823 vuc __builtin_vec_orc (vbc, vuc);
2824 ORC_V16QI_UNS ORC_VBC_VUC
2825 vuc __builtin_vec_orc (vuc, vbc);
2826 ORC_V16QI_UNS ORC_VUC_VBC
2827 vss __builtin_vec_orc (vbs, vss);
2828 ORC_V8HI ORC_VBS_VSS
2829 vss __builtin_vec_orc (vss, vbs);
2830 ORC_V8HI ORC_VSS_VBS
2831 vus __builtin_vec_orc (vbs, vus);
2832 ORC_V8HI_UNS ORC_VBS_VUS
2833 vus __builtin_vec_orc (vus, vbs);
2834 ORC_V8HI_UNS ORC_VUS_VBS
2835 vsi __builtin_vec_orc (vbi, vsi);
2836 ORC_V4SI ORC_VBI_VSI
2837 vsi __builtin_vec_orc (vsi, vbi);
2838 ORC_V4SI ORC_VSI_VBI
2839 vui __builtin_vec_orc (vbi, vui);
2840 ORC_V4SI_UNS ORC_VBI_VUI
2841 vui __builtin_vec_orc (vui, vbi);
2842 ORC_V4SI_UNS ORC_VUI_VBI
2843 vsll __builtin_vec_orc (vbll, vsll);
2844 ORC_V2DI ORC_VBLL_VSLL
2845 vsll __builtin_vec_orc (vsll, vbll);
2846 ORC_V2DI ORC_VSLL_VBLL
2847 vull __builtin_vec_orc (vbll, vull);
2848 ORC_V2DI_UNS ORC_VBLL_VULL
2849 vull __builtin_vec_orc (vull, vbll);
2850 ORC_V2DI_UNS ORC_VULL_VBLL
2851
2852[VEC_PACK, vec_pack, __builtin_vec_pack]
2853 vsc __builtin_vec_pack (vss, vss);
2854 VPKUHUM VPKUHUM_VSS
2855 vuc __builtin_vec_pack (vus, vus);
2856 VPKUHUM VPKUHUM_VUS
2857 vbc __builtin_vec_pack (vbs, vbs);
2858 VPKUHUM VPKUHUM_VBS
2859 vss __builtin_vec_pack (vsi, vsi);
2860 VPKUWUM VPKUWUM_VSI
2861 vus __builtin_vec_pack (vui, vui);
2862 VPKUWUM VPKUWUM_VUI
2863 vbs __builtin_vec_pack (vbi, vbi);
2864 VPKUWUM VPKUWUM_VBI
2865 vsi __builtin_vec_pack (vsll, vsll);
2866 VPKUDUM VPKUDUM_VSLL
2867 vui __builtin_vec_pack (vull, vull);
2868 VPKUDUM VPKUDUM_VULL
2869 vbi __builtin_vec_pack (vbll, vbll);
2870 VPKUDUM VPKUDUM_VBLL
2871 vf __builtin_vec_pack (vd, vd);
2872 FLOAT2_V2DF FLOAT2_V2DF_PACK
2873
2874[VEC_PACKPX, vec_packpx, __builtin_vec_packpx]
2875 vp __builtin_vec_packpx (vui, vui);
2876 VPKPX
2877
2878[VEC_PACKS, vec_packs, __builtin_vec_packs]
2879 vuc __builtin_vec_packs (vus, vus);
2880 VPKUHUS VPKUHUS_S
2881 vsc __builtin_vec_packs (vss, vss);
2882 VPKSHSS
2883 vus __builtin_vec_packs (vui, vui);
2884 VPKUWUS VPKUWUS_S
2885 vss __builtin_vec_packs (vsi, vsi);
2886 VPKSWSS
2887 vui __builtin_vec_packs (vull, vull);
2888 VPKUDUS VPKUDUS_S
2889 vsi __builtin_vec_packs (vsll, vsll);
2890 VPKSDSS
2891
2892[VEC_PACKSU, vec_packsu, __builtin_vec_packsu]
2893 vuc __builtin_vec_packsu (vus, vus);
2894 VPKUHUS VPKUHUS_U
2895 vuc __builtin_vec_packsu (vss, vss);
2896 VPKSHUS
2897 vus __builtin_vec_packsu (vui, vui);
2898 VPKUWUS VPKUWUS_U
2899 vus __builtin_vec_packsu (vsi, vsi);
2900 VPKSWUS
2901 vui __builtin_vec_packsu (vull, vull);
2902 VPKUDUS VPKUDUS_U
2903 vui __builtin_vec_packsu (vsll, vsll);
2904 VPKSDUS
2905
7e836079 2906[VEC_PDEP, vec_pdep, __builtin_vec_vpdepd]
e2693a72
BS
2907 vull __builtin_vec_vpdepd (vull, vull);
2908 VPDEPD
2909
2910[VEC_PERM, vec_perm, __builtin_vec_perm]
2911 vsc __builtin_vec_perm (vsc, vsc, vuc);
2912 VPERM_16QI
2913 vuc __builtin_vec_perm (vuc, vuc, vuc);
2914 VPERM_16QI_UNS VPERM_16QI_VUC
2915 vbc __builtin_vec_perm (vbc, vbc, vuc);
2916 VPERM_16QI_UNS VPERM_16QI_VBC
2917 vss __builtin_vec_perm (vss, vss, vuc);
2918 VPERM_8HI
2919 vus __builtin_vec_perm (vus, vus, vuc);
2920 VPERM_8HI_UNS VPERM_8HI_VUS
2921 vbs __builtin_vec_perm (vbs, vbs, vuc);
2922 VPERM_8HI_UNS VPERM_8HI_VBS
2923 vp __builtin_vec_perm (vp, vp, vuc);
2924 VPERM_8HI_UNS VPERM_8HI_VP
2925 vsi __builtin_vec_perm (vsi, vsi, vuc);
2926 VPERM_4SI
2927 vui __builtin_vec_perm (vui, vui, vuc);
2928 VPERM_4SI_UNS VPERM_4SI_VUI
2929 vbi __builtin_vec_perm (vbi, vbi, vuc);
2930 VPERM_4SI_UNS VPERM_4SI_VBI
2931 vsll __builtin_vec_perm (vsll, vsll, vuc);
2932 VPERM_2DI
2933 vull __builtin_vec_perm (vull, vull, vuc);
2934 VPERM_2DI_UNS VPERM_2DI_VULL
2935 vbll __builtin_vec_perm (vbll, vbll, vuc);
2936 VPERM_2DI_UNS VPERM_2DI_VBLL
2937 vf __builtin_vec_perm (vf, vf, vuc);
2938 VPERM_4SF
2939 vd __builtin_vec_perm (vd, vd, vuc);
2940 VPERM_2DF
2941 vsq __builtin_vec_perm (vsq, vsq, vuc);
2942 VPERM_1TI
2943 vuq __builtin_vec_perm (vuq, vuq, vuc);
2944 VPERM_1TI_UNS
2945; The following variants are deprecated.
2946 vsc __builtin_vec_perm (vsc, vuc, vuc);
2947 VPERM_16QI VPERM_VSC_VUC_VUC
2948 vbc __builtin_vec_perm (vbc, vbc, vbc);
2949 VPERM_16QI VPERM_VBC_VBC_VBC
2950
7e836079 2951[VEC_PERMX, vec_permx, __builtin_vec_xxpermx]
e2693a72
BS
2952 vsc __builtin_vec_xxpermx (vsc, vsc, vuc, const int);
2953 XXPERMX_UV2DI XXPERMX_VSC
2954 vuc __builtin_vec_xxpermx (vuc, vuc, vuc, const int);
2955 XXPERMX_UV2DI XXPERMX_VUC
2956 vss __builtin_vec_xxpermx (vss, vss, vuc, const int);
2957 XXPERMX_UV2DI XXPERMX_VSS
2958 vus __builtin_vec_xxpermx (vus, vus, vuc, const int);
2959 XXPERMX_UV2DI XXPERMX_VUS
2960 vsi __builtin_vec_xxpermx (vsi, vsi, vuc, const int);
2961 XXPERMX_UV2DI XXPERMX_VSI
2962 vui __builtin_vec_xxpermx (vui, vui, vuc, const int);
2963 XXPERMX_UV2DI XXPERMX_VUI
2964 vsll __builtin_vec_xxpermx (vsll, vsll, vuc, const int);
2965 XXPERMX_UV2DI XXPERMX_VSLL
2966 vull __builtin_vec_xxpermx (vull, vull, vuc, const int);
2967 XXPERMX_UV2DI XXPERMX_VULL
2968 vf __builtin_vec_xxpermx (vf, vf, vuc, const int);
2969 XXPERMX_UV2DI XXPERMX_VF
2970 vd __builtin_vec_xxpermx (vd, vd, vuc, const int);
2971 XXPERMX_UV2DI XXPERMX_VD
2972
2973[VEC_PERMXOR, vec_permxor, __builtin_vec_vpermxor]
2974 vsc __builtin_vec_vpermxor (vsc, vsc, vsc);
2975 VPERMXOR VPERMXOR_VSC
2976 vuc __builtin_vec_vpermxor (vuc, vuc, vuc);
2977 VPERMXOR VPERMXOR_VUC
2978 vbc __builtin_vec_vpermxor (vbc, vbc, vbc);
2979 VPERMXOR VPERMXOR_VBC
2980
7e836079 2981[VEC_PEXT, vec_pext, __builtin_vec_vpextd]
e2693a72
BS
2982 vull __builtin_vec_vpextd (vull, vull);
2983 VPEXTD
2984
2985[VEC_PMSUM, vec_pmsum_be, __builtin_vec_vpmsum]
2986 vus __builtin_vec_vpmsum (vuc, vuc);
2987 VPMSUMB VPMSUMB_V
2988 vui __builtin_vec_vpmsum (vus, vus);
2989 VPMSUMH VPMSUMH_V
2990 vull __builtin_vec_vpmsum (vui, vui);
2991 VPMSUMW VPMSUMW_V
2992 vuq __builtin_vec_vpmsum (vull, vull);
2993 VPMSUMD VPMSUMD_V
2994
7e836079 2995[VEC_POPCNT, vec_popcnt, __builtin_vec_vpopcntu]
e2693a72
BS
2996 vuc __builtin_vec_vpopcntu (vsc);
2997 VPOPCNTB
2998 vuc __builtin_vec_vpopcntu (vuc);
2999 VPOPCNTUB
3000 vus __builtin_vec_vpopcntu (vss);
3001 VPOPCNTH
3002 vus __builtin_vec_vpopcntu (vus);
3003 VPOPCNTUH
3004 vui __builtin_vec_vpopcntu (vsi);
3005 VPOPCNTW
3006 vui __builtin_vec_vpopcntu (vui);
3007 VPOPCNTUW
3008 vull __builtin_vec_vpopcntu (vsll);
3009 VPOPCNTD
3010 vull __builtin_vec_vpopcntu (vull);
3011 VPOPCNTUD
3012
7e836079 3013[VEC_PARITY_LSBB, vec_parity_lsbb, __builtin_vec_vparity_lsbb]
e2693a72
BS
3014 vui __builtin_vec_vparity_lsbb (vsi);
3015 VPRTYBW VPRTYBW_S
3016 vui __builtin_vec_vparity_lsbb (vui);
3017 VPRTYBW VPRTYBW_U
3018 vull __builtin_vec_vparity_lsbb (vsll);
3019 VPRTYBD VPRTYBD_S
3020 vull __builtin_vec_vparity_lsbb (vull);
3021 VPRTYBD VPRTYBD_U
3022 vuq __builtin_vec_vparity_lsbb (vsq);
3023 VPRTYBQ VPRTYBQ_S
3024 vuq __builtin_vec_vparity_lsbb (vuq);
3025 VPRTYBQ VPRTYBQ_U
3026
3027; There are no actual builtins for vec_promote. There is special handling for
e53b6e56 3028; this in altivec_resolve_overloaded_builtin in rs6000-c.cc, where the call
e2693a72
BS
3029; is replaced by a constructor. The single overload here causes
3030; __builtin_vec_promote to be registered with the front end so that can happen.
3031[VEC_PROMOTE, vec_promote, __builtin_vec_promote]
dfedfc30 3032 vsi __builtin_vec_promote (vsi, const int);
e2693a72
BS
3033 ABS_V4SI PROMOTE_FAKERY
3034
3035[VEC_RE, vec_re, __builtin_vec_re]
3036 vf __builtin_vec_re (vf);
3037 VREFP
3038 vd __builtin_vec_re (vd);
3039 XVREDP
3040
3041[VEC_RECIP, vec_recipdiv, __builtin_vec_recipdiv]
3042 vf __builtin_vec_recipdiv (vf, vf);
3043 RECIP_V4SF
3044 vd __builtin_vec_recipdiv (vd, vd);
3045 RECIP_V2DF
3046
7e836079 3047[VEC_REPLACE_ELT, vec_replace_elt, __builtin_vec_replace_elt]
e2693a72
BS
3048 vui __builtin_vec_replace_elt (vui, unsigned int, const int);
3049 VREPLACE_ELT_UV4SI
3050 vsi __builtin_vec_replace_elt (vsi, signed int, const int);
3051 VREPLACE_ELT_V4SI
3052 vull __builtin_vec_replace_elt (vull, unsigned long long, const int);
3053 VREPLACE_ELT_UV2DI
3054 vsll __builtin_vec_replace_elt (vsll, signed long long, const int);
3055 VREPLACE_ELT_V2DI
3056 vf __builtin_vec_replace_elt (vf, float, const int);
3057 VREPLACE_ELT_V4SF
3058 vd __builtin_vec_replace_elt (vd, double, const int);
3059 VREPLACE_ELT_V2DF
3060
7e836079 3061[VEC_REPLACE_UN, vec_replace_unaligned, __builtin_vec_replace_un]
ed3fea09 3062 vuc __builtin_vec_replace_un (vui, unsigned int, const int);
e2693a72 3063 VREPLACE_UN_UV4SI
ed3fea09 3064 vuc __builtin_vec_replace_un (vsi, signed int, const int);
e2693a72 3065 VREPLACE_UN_V4SI
ed3fea09 3066 vuc __builtin_vec_replace_un (vull, unsigned long long, const int);
e2693a72 3067 VREPLACE_UN_UV2DI
ed3fea09 3068 vuc __builtin_vec_replace_un (vsll, signed long long, const int);
e2693a72 3069 VREPLACE_UN_V2DI
ed3fea09 3070 vuc __builtin_vec_replace_un (vf, float, const int);
e2693a72 3071 VREPLACE_UN_V4SF
ed3fea09 3072 vuc __builtin_vec_replace_un (vd, double, const int);
e2693a72
BS
3073 VREPLACE_UN_V2DF
3074
7e836079 3075[VEC_REVB, vec_revb, __builtin_vec_revb]
e2693a72
BS
3076 vss __builtin_vec_revb (vss);
3077 REVB_V8HI REVB_VSS
3078 vus __builtin_vec_revb (vus);
3079 REVB_V8HI REVB_VUS
3080 vsi __builtin_vec_revb (vsi);
3081 REVB_V4SI REVB_VSI
3082 vui __builtin_vec_revb (vui);
3083 REVB_V4SI REVB_VUI
3084 vsll __builtin_vec_revb (vsll);
3085 REVB_V2DI REVB_VSLL
3086 vull __builtin_vec_revb (vull);
3087 REVB_V2DI REVB_VULL
3088 vsq __builtin_vec_revb (vsq);
3089 REVB_V1TI REVB_VSQ
3090 vuq __builtin_vec_revb (vuq);
3091 REVB_V1TI REVB_VUQ
3092 vf __builtin_vec_revb (vf);
3093 REVB_V4SF
3094 vd __builtin_vec_revb (vd);
3095 REVB_V2DF
3096; The following variants are deprecated.
3097 vsc __builtin_vec_revb (vsc);
3098 REVB_V16QI REVB_VSC
3099 vuc __builtin_vec_revb (vuc);
3100 REVB_V16QI REVB_VUC
3101 vbc __builtin_vec_revb (vbc);
3102 REVB_V16QI REVB_VBC
3103 vbs __builtin_vec_revb (vbs);
3104 REVB_V8HI REVB_VBS
3105 vbi __builtin_vec_revb (vbi);
3106 REVB_V4SI REVB_VBI
3107 vbll __builtin_vec_revb (vbll);
3108 REVB_V2DI REVB_VBLL
3109
3110[VEC_REVE, vec_reve, __builtin_vec_vreve]
3111 vsc __builtin_vec_vreve (vsc);
3112 VREVE_V16QI VREVE_VSC
3113 vuc __builtin_vec_vreve (vuc);
3114 VREVE_V16QI VREVE_VUC
3115 vbc __builtin_vec_vreve (vbc);
3116 VREVE_V16QI VREVE_VBC
3117 vss __builtin_vec_vreve (vss);
3118 VREVE_V8HI VREVE_VSS
3119 vus __builtin_vec_vreve (vus);
3120 VREVE_V8HI VREVE_VUS
3121 vbs __builtin_vec_vreve (vbs);
3122 VREVE_V8HI VREVE_VBS
3123 vsi __builtin_vec_vreve (vsi);
3124 VREVE_V4SI VREVE_VSI
3125 vui __builtin_vec_vreve (vui);
3126 VREVE_V4SI VREVE_VUI
3127 vbi __builtin_vec_vreve (vbi);
3128 VREVE_V4SI VREVE_VBI
3129 vsll __builtin_vec_vreve (vsll);
3130 VREVE_V2DI VREVE_VSLL
3131 vull __builtin_vec_vreve (vull);
3132 VREVE_V2DI VREVE_VULL
3133 vbll __builtin_vec_vreve (vbll);
3134 VREVE_V2DI VREVE_VBLL
3135 vf __builtin_vec_vreve (vf);
3136 VREVE_V4SF
3137 vd __builtin_vec_vreve (vd);
3138 VREVE_V2DF
3139
7e836079 3140[VEC_RINT, vec_rint, __builtin_vec_rint]
e2693a72
BS
3141 vf __builtin_vec_rint (vf);
3142 XVRSPIC
3143 vd __builtin_vec_rint (vd);
3144 XVRDPIC
3145
3146[VEC_RL, vec_rl, __builtin_vec_rl]
3147 vsc __builtin_vec_rl (vsc, vuc);
3148 VRLB VRLB_VSC
3149 vuc __builtin_vec_rl (vuc, vuc);
3150 VRLB VRLB_VUC
3151 vss __builtin_vec_rl (vss, vus);
3152 VRLH VRLH_VSS
3153 vus __builtin_vec_rl (vus, vus);
3154 VRLH VRLH_VUS
3155 vsi __builtin_vec_rl (vsi, vui);
3156 VRLW VRLW_VSI
3157 vui __builtin_vec_rl (vui, vui);
3158 VRLW VRLW_VUI
3159 vsll __builtin_vec_rl (vsll, vull);
3160 VRLD VRLD_VSLL
3161 vull __builtin_vec_rl (vull, vull);
3162 VRLD VRLD_VULL
3163 vsq __builtin_vec_rl (vsq, vuq);
3164 VRLQ VRLQ_VSQ
3165 vuq __builtin_vec_rl (vuq, vuq);
3166 VRLQ VRLQ_VUQ
3167
7e836079 3168[VEC_RLMI, vec_rlmi, __builtin_vec_rlmi]
e2693a72
BS
3169 vui __builtin_vec_rlmi (vui, vui, vui);
3170 VRLWMI
3171 vull __builtin_vec_rlmi (vull, vull, vull);
3172 VRLDMI
3173 vsq __builtin_vec_rlmi (vsq, vsq, vuq);
3174 VRLQMI VRLQMI_VSQ
3175 vuq __builtin_vec_rlmi (vuq, vuq, vuq);
3176 VRLQMI VRLQMI_VUQ
3177
7e836079 3178[VEC_RLNM, vec_vrlnm, __builtin_vec_rlnm]
e2693a72
BS
3179 vui __builtin_vec_rlnm (vui, vui);
3180 VRLWNM
3181 vull __builtin_vec_rlnm (vull, vull);
3182 VRLDNM
3183 vsq __builtin_vec_rlnm (vsq, vuq);
3184 VRLQNM VRLQNM_VSQ
3185 vuq __builtin_vec_rlnm (vuq, vuq);
3186 VRLQNM VRLQNM_VUQ
3187
3188[VEC_ROUND, vec_round, __builtin_vec_round]
3189 vf __builtin_vec_round (vf);
3190 VRFIN
3191 vd __builtin_vec_round (vd);
3192 XVRDPI
3193
3194[VEC_RSQRT, vec_rsqrt, __builtin_vec_rsqrt]
3195 vf __builtin_vec_rsqrt (vf);
3196 RSQRT_4SF
3197 vd __builtin_vec_rsqrt (vd);
3198 RSQRT_2DF
3199
3200[VEC_RSQRTE, vec_rsqrte, __builtin_vec_rsqrte]
3201 vf __builtin_vec_rsqrte (vf);
3202 VRSQRTEFP
3203 vd __builtin_vec_rsqrte (vd);
3204 XVRSQRTEDP
3205
7e836079 3206[VEC_SBOX_BE, vec_sbox_be, __builtin_vec_sbox_be]
e2693a72
BS
3207 vuc __builtin_vec_sbox_be (vuc);
3208 VSBOX_BE
3209
3210[VEC_SEL, vec_sel, __builtin_vec_sel]
3211 vsc __builtin_vec_sel (vsc, vsc, vbc);
3212 VSEL_16QI VSEL_16QI_B
3213 vsc __builtin_vec_sel (vsc, vsc, vuc);
3214 VSEL_16QI VSEL_16QI_U
3215 vuc __builtin_vec_sel (vuc, vuc, vbc);
3216 VSEL_16QI_UNS VSEL_16QI_UB
3217 vuc __builtin_vec_sel (vuc, vuc, vuc);
3218 VSEL_16QI_UNS VSEL_16QI_UU
3219 vbc __builtin_vec_sel (vbc, vbc, vbc);
3220 VSEL_16QI_UNS VSEL_16QI_BB
3221 vbc __builtin_vec_sel (vbc, vbc, vuc);
3222 VSEL_16QI_UNS VSEL_16QI_BU
3223 vss __builtin_vec_sel (vss, vss, vbs);
3224 VSEL_8HI VSEL_8HI_B
3225 vss __builtin_vec_sel (vss, vss, vus);
3226 VSEL_8HI VSEL_8HI_U
3227 vus __builtin_vec_sel (vus, vus, vbs);
3228 VSEL_8HI_UNS VSEL_8HI_UB
3229 vus __builtin_vec_sel (vus, vus, vus);
3230 VSEL_8HI_UNS VSEL_8HI_UU
3231 vbs __builtin_vec_sel (vbs, vbs, vbs);
3232 VSEL_8HI_UNS VSEL_8HI_BB
3233 vbs __builtin_vec_sel (vbs, vbs, vus);
3234 VSEL_8HI_UNS VSEL_8HI_BU
3235 vsi __builtin_vec_sel (vsi, vsi, vbi);
3236 VSEL_4SI VSEL_4SI_B
3237 vsi __builtin_vec_sel (vsi, vsi, vui);
3238 VSEL_4SI VSEL_4SI_U
3239 vui __builtin_vec_sel (vui, vui, vbi);
3240 VSEL_4SI_UNS VSEL_4SI_UB
3241 vui __builtin_vec_sel (vui, vui, vui);
3242 VSEL_4SI_UNS VSEL_4SI_UU
3243 vbi __builtin_vec_sel (vbi, vbi, vbi);
3244 VSEL_4SI_UNS VSEL_4SI_BB
3245 vbi __builtin_vec_sel (vbi, vbi, vui);
3246 VSEL_4SI_UNS VSEL_4SI_BU
3247 vsll __builtin_vec_sel (vsll, vsll, vbll);
3248 VSEL_2DI_B VSEL_2DI_B
3249 vsll __builtin_vec_sel (vsll, vsll, vull);
3250 VSEL_2DI_B VSEL_2DI_U
3251 vull __builtin_vec_sel (vull, vull, vbll);
3252 VSEL_2DI_UNS VSEL_2DI_UB
3253 vull __builtin_vec_sel (vull, vull, vull);
3254 VSEL_2DI_UNS VSEL_2DI_UU
3255 vbll __builtin_vec_sel (vbll, vbll, vbll);
3256 VSEL_2DI_UNS VSEL_2DI_BB
3257 vbll __builtin_vec_sel (vbll, vbll, vull);
3258 VSEL_2DI_UNS VSEL_2DI_BU
3259 vf __builtin_vec_sel (vf, vf, vbi);
3260 VSEL_4SF VSEL_4SF_B
3261 vf __builtin_vec_sel (vf, vf, vui);
3262 VSEL_4SF VSEL_4SF_U
3263 vd __builtin_vec_sel (vd, vd, vbll);
3264 VSEL_2DF VSEL_2DF_B
3265 vd __builtin_vec_sel (vd, vd, vull);
3266 VSEL_2DF VSEL_2DF_U
3267; The following variants are deprecated.
3268 vsll __builtin_vec_sel (vsll, vsll, vsll);
3269 VSEL_2DI_B VSEL_2DI_S
3270 vull __builtin_vec_sel (vull, vull, vsll);
3271 VSEL_2DI_UNS VSEL_2DI_US
3272 vf __builtin_vec_sel (vf, vf, vf);
3273 VSEL_4SF VSEL_4SF_F
3274 vf __builtin_vec_sel (vf, vf, vsi);
3275 VSEL_4SF VSEL_4SF_S
3276 vd __builtin_vec_sel (vd, vd, vsll);
3277 VSEL_2DF VSEL_2DF_S
3278 vd __builtin_vec_sel (vd, vd, vd);
3279 VSEL_2DF VSEL_2DF_D
3280
3281[VEC_SHASIGMA_BE, vec_shasigma_be, __builtin_crypto_vshasigma]
3282 vui __builtin_crypto_vshasigma (vui, const int, const int);
3283 VSHASIGMAW
3284 vull __builtin_crypto_vshasigma (vull, const int, const int);
3285 VSHASIGMAD
3286
3287[VEC_SIGNED, vec_signed, __builtin_vec_vsigned]
3288 vsi __builtin_vec_vsigned (vf);
3289 VEC_VSIGNED_V4SF
3290 vsll __builtin_vec_vsigned (vd);
3291 VEC_VSIGNED_V2DF
3292
3293[VEC_SIGNED2, vec_signed2, __builtin_vec_vsigned2]
3294 vsi __builtin_vec_vsigned2 (vd, vd);
3295 VEC_VSIGNED2_V2DF
3296
3297[VEC_SIGNEDE, vec_signede, __builtin_vec_vsignede]
3298 vsi __builtin_vec_vsignede (vd);
3299 VEC_VSIGNEDE_V2DF
3300
3301[VEC_SIGNEDO, vec_signedo, __builtin_vec_vsignedo]
3302 vsi __builtin_vec_vsignedo (vd);
3303 VEC_VSIGNEDO_V2DF
3304
7e836079 3305[VEC_SIGNEXTI, vec_signexti, __builtin_vec_signexti]
e2693a72
BS
3306 vsi __builtin_vec_signexti (vsc);
3307 VSIGNEXTSB2W
3308 vsi __builtin_vec_signexti (vss);
3309 VSIGNEXTSH2W
3310
7e836079 3311[VEC_SIGNEXTLL, vec_signextll, __builtin_vec_signextll]
e2693a72
BS
3312 vsll __builtin_vec_signextll (vsc);
3313 VSIGNEXTSB2D
3314 vsll __builtin_vec_signextll (vss);
3315 VSIGNEXTSH2D
3316 vsll __builtin_vec_signextll (vsi);
3317 VSIGNEXTSW2D
3318
7e836079 3319[VEC_SIGNEXTQ, vec_signextq, __builtin_vec_signextq]
e2693a72
BS
3320 vsq __builtin_vec_signextq (vsll);
3321 VSIGNEXTSD2Q
3322
3323[VEC_SL, vec_sl, __builtin_vec_sl]
3324 vsc __builtin_vec_sl (vsc, vuc);
3325 VSLB VSLB_VSC
3326 vuc __builtin_vec_sl (vuc, vuc);
3327 VSLB VSLB_VUC
3328 vss __builtin_vec_sl (vss, vus);
3329 VSLH VSLH_VSS
3330 vus __builtin_vec_sl (vus, vus);
3331 VSLH VSLH_VUS
3332 vsi __builtin_vec_sl (vsi, vui);
3333 VSLW VSLW_VSI
3334 vui __builtin_vec_sl (vui, vui);
3335 VSLW VSLW_VUI
3336 vsll __builtin_vec_sl (vsll, vull);
3337 VSLD VSLD_VSLL
3338 vull __builtin_vec_sl (vull, vull);
3339 VSLD VSLD_VULL
3340 vsq __builtin_vec_sl (vsq, vuq);
3341 VSLQ VSLQ_VSQ
3342 vuq __builtin_vec_sl (vuq, vuq);
3343 VSLQ VSLQ_VUQ
3344
3345[VEC_SLD, vec_sld, __builtin_vec_sld]
3346 vsc __builtin_vec_sld (vsc, vsc, const int);
3347 VSLDOI_16QI VSLDOI_VSC
3348 vbc __builtin_vec_sld (vbc, vbc, const int);
3349 VSLDOI_16QI VSLDOI_VBC
3350 vuc __builtin_vec_sld (vuc, vuc, const int);
3351 VSLDOI_16QI VSLDOI_VUC
3352 vss __builtin_vec_sld (vss, vss, const int);
3353 VSLDOI_8HI VSLDOI_VSS
3354 vbs __builtin_vec_sld (vbs, vbs, const int);
3355 VSLDOI_8HI VSLDOI_VBS
3356 vus __builtin_vec_sld (vus, vus, const int);
3357 VSLDOI_8HI VSLDOI_VUS
3358 vp __builtin_vec_sld (vp, vp, const int);
3359 VSLDOI_8HI VSLDOI_VP
3360 vsi __builtin_vec_sld (vsi, vsi, const int);
3361 VSLDOI_4SI VSLDOI_VSI
3362 vbi __builtin_vec_sld (vbi, vbi, const int);
3363 VSLDOI_4SI VSLDOI_VBI
3364 vui __builtin_vec_sld (vui, vui, const int);
3365 VSLDOI_4SI VSLDOI_VUI
3366 vsll __builtin_vec_sld (vsll, vsll, const int);
3367 VSLDOI_2DI VSLDOI_VSLL
3368 vbll __builtin_vec_sld (vbll, vbll, const int);
3369 VSLDOI_2DI VSLDOI_VBLL
3370 vull __builtin_vec_sld (vull, vull, const int);
3371 VSLDOI_2DI VSLDOI_VULL
3372 vf __builtin_vec_sld (vf, vf, const int);
3373 VSLDOI_4SF
3374 vd __builtin_vec_sld (vd, vd, const int);
3375 VSLDOI_2DF
3376
7e836079 3377[VEC_SLDB, vec_sldb, __builtin_vec_sldb]
e2693a72
BS
3378 vsc __builtin_vec_sldb (vsc, vsc, const int);
3379 VSLDB_V16QI VSLDB_VSC
3380 vuc __builtin_vec_sldb (vuc, vuc, const int);
3381 VSLDB_V16QI VSLDB_VUC
3382 vss __builtin_vec_sldb (vss, vss, const int);
3383 VSLDB_V8HI VSLDB_VSS
3384 vus __builtin_vec_sldb (vus, vus, const int);
3385 VSLDB_V8HI VSLDB_VUS
3386 vsi __builtin_vec_sldb (vsi, vsi, const int);
3387 VSLDB_V4SI VSLDB_VSI
3388 vui __builtin_vec_sldb (vui, vui, const int);
3389 VSLDB_V4SI VSLDB_VUI
3390 vsll __builtin_vec_sldb (vsll, vsll, const int);
3391 VSLDB_V2DI VSLDB_VSLL
3392 vull __builtin_vec_sldb (vull, vull, const int);
3393 VSLDB_V2DI VSLDB_VULL
3394
3395[VEC_SLDW, vec_sldw, __builtin_vec_sldw]
3396 vsc __builtin_vec_sldw (vsc, vsc, const int);
3397 XXSLDWI_16QI XXSLDWI_VSC
3398 vuc __builtin_vec_sldw (vuc, vuc, const int);
3399 XXSLDWI_16QI XXSLDWI_VUC
3400 vss __builtin_vec_sldw (vss, vss, const int);
3401 XXSLDWI_8HI XXSLDWI_VSS
3402 vus __builtin_vec_sldw (vus, vus, const int);
3403 XXSLDWI_8HI XXSLDWI_VUS
3404 vsi __builtin_vec_sldw (vsi, vsi, const int);
3405 XXSLDWI_4SI XXSLDWI_VSI
3406 vui __builtin_vec_sldw (vui, vui, const int);
3407 XXSLDWI_4SI XXSLDWI_VUI
3408 vsll __builtin_vec_sldw (vsll, vsll, const int);
3409 XXSLDWI_2DI XXSLDWI_VSLL
3410 vull __builtin_vec_sldw (vull, vull, const int);
3411 XXSLDWI_2DI XXSLDWI_VULL
afe91e25
BS
3412 vf __builtin_vec_sldw (vf, vf, const int);
3413 XXSLDWI_4SF XXSLDWI_VF
3414 vd __builtin_vec_sldw (vd, vd, const int);
3415 XXSLDWI_2DF XXSLDWI_VD
e2693a72
BS
3416
3417[VEC_SLL, vec_sll, __builtin_vec_sll]
3418 vsc __builtin_vec_sll (vsc, vuc);
3419 VSL VSL_VSC
3420 vuc __builtin_vec_sll (vuc, vuc);
3421 VSL VSL_VUC
3422 vss __builtin_vec_sll (vss, vuc);
3423 VSL VSL_VSS
3424 vus __builtin_vec_sll (vus, vuc);
3425 VSL VSL_VUS
3426 vp __builtin_vec_sll (vp, vuc);
3427 VSL VSL_VP
3428 vsi __builtin_vec_sll (vsi, vuc);
3429 VSL VSL_VSI
3430 vui __builtin_vec_sll (vui, vuc);
3431 VSL VSL_VUI
3432 vsll __builtin_vec_sll (vsll, vuc);
3433 VSL VSL_VSLL
3434 vull __builtin_vec_sll (vull, vuc);
3435 VSL VSL_VULL
3436; The following variants are deprecated.
3437 vsc __builtin_vec_sll (vsc, vus);
3438 VSL VSL_VSC_VUS
3439 vsc __builtin_vec_sll (vsc, vui);
3440 VSL VSL_VSC_VUI
3441 vuc __builtin_vec_sll (vuc, vus);
3442 VSL VSL_VUC_VUS
3443 vuc __builtin_vec_sll (vuc, vui);
3444 VSL VSL_VUC_VUI
3445 vbc __builtin_vec_sll (vbc, vuc);
3446 VSL VSL_VBC_VUC
3447 vbc __builtin_vec_sll (vbc, vus);
3448 VSL VSL_VBC_VUS
3449 vbc __builtin_vec_sll (vbc, vui);
3450 VSL VSL_VBC_VUI
3451 vss __builtin_vec_sll (vss, vus);
3452 VSL VSL_VSS_VUS
3453 vss __builtin_vec_sll (vss, vui);
3454 VSL VSL_VSS_VUI
3455 vus __builtin_vec_sll (vus, vus);
3456 VSL VSL_VUS_VUS
3457 vus __builtin_vec_sll (vus, vui);
3458 VSL VSL_VUS_VUI
3459 vbs __builtin_vec_sll (vbs, vuc);
3460 VSL VSL_VBS_VUC
3461 vbs __builtin_vec_sll (vbs, vus);
3462 VSL VSL_VBS_VUS
3463 vbs __builtin_vec_sll (vbs, vui);
3464 VSL VSL_VBS_VUI
3465 vp __builtin_vec_sll (vp, vus);
3466 VSL VSL_VP_VUS
3467 vp __builtin_vec_sll (vp, vui);
3468 VSL VSL_VP_VUI
3469 vsi __builtin_vec_sll (vsi, vus);
3470 VSL VSL_VSI_VUS
3471 vsi __builtin_vec_sll (vsi, vui);
3472 VSL VSL_VSI_VUI
3473 vui __builtin_vec_sll (vui, vus);
3474 VSL VSL_VUI_VUS
3475 vui __builtin_vec_sll (vui, vui);
3476 VSL VSL_VUI_VUI
3477 vbi __builtin_vec_sll (vbi, vuc);
3478 VSL VSL_VBI_VUC
3479 vbi __builtin_vec_sll (vbi, vus);
3480 VSL VSL_VBI_VUS
3481 vbi __builtin_vec_sll (vbi, vui);
3482 VSL VSL_VBI_VUI
3483 vbll __builtin_vec_sll (vbll, vuc);
3484 VSL VSL_VBLL_VUC
3485 vbll __builtin_vec_sll (vbll, vus);
3486 VSL VSL_VBLL_VUS
3487 vbll __builtin_vec_sll (vbll, vull);
3488 VSL VSL_VBLL_VULL
3489
3490[VEC_SLO, vec_slo, __builtin_vec_slo]
3491 vsc __builtin_vec_slo (vsc, vsc);
3492 VSLO VSLO_VSCS
3493 vsc __builtin_vec_slo (vsc, vuc);
3494 VSLO VSLO_VSCU
3495 vuc __builtin_vec_slo (vuc, vsc);
3496 VSLO VSLO_VUCS
3497 vuc __builtin_vec_slo (vuc, vuc);
3498 VSLO VSLO_VUCU
3499 vss __builtin_vec_slo (vss, vsc);
3500 VSLO VSLO_VSSS
3501 vss __builtin_vec_slo (vss, vuc);
3502 VSLO VSLO_VSSU
3503 vus __builtin_vec_slo (vus, vsc);
3504 VSLO VSLO_VUSS
3505 vus __builtin_vec_slo (vus, vuc);
3506 VSLO VSLO_VUSU
3507 vp __builtin_vec_slo (vp, vsc);
3508 VSLO VSLO_VPS
3509 vp __builtin_vec_slo (vp, vuc);
3510 VSLO VSLO_VPU
3511 vsi __builtin_vec_slo (vsi, vsc);
3512 VSLO VSLO_VSIS
3513 vsi __builtin_vec_slo (vsi, vuc);
3514 VSLO VSLO_VSIU
3515 vui __builtin_vec_slo (vui, vsc);
3516 VSLO VSLO_VUIS
3517 vui __builtin_vec_slo (vui, vuc);
3518 VSLO VSLO_VUIU
3519 vsll __builtin_vec_slo (vsll, vsc);
3520 VSLO VSLO_VSLLS
3521 vsll __builtin_vec_slo (vsll, vuc);
3522 VSLO VSLO_VSLLU
3523 vull __builtin_vec_slo (vull, vsc);
3524 VSLO VSLO_VULLS
3525 vull __builtin_vec_slo (vull, vuc);
3526 VSLO VSLO_VULLU
3527 vf __builtin_vec_slo (vf, vsc);
3528 VSLO VSLO_VFS
3529 vf __builtin_vec_slo (vf, vuc);
3530 VSLO VSLO_VFU
3531
7e836079 3532[VEC_SLV, vec_slv, __builtin_vec_vslv]
e2693a72
BS
3533 vuc __builtin_vec_vslv (vuc, vuc);
3534 VSLV
3535
3536[VEC_SPLAT, vec_splat, __builtin_vec_splat]
3537 vsc __builtin_vec_splat (vsc, signed int);
3538 VSPLTB VSPLTB_VSC
3539 vuc __builtin_vec_splat (vuc, signed int);
3540 VSPLTB VSPLTB_VUC
3541 vbc __builtin_vec_splat (vbc, signed int);
3542 VSPLTB VSPLTB_VBC
3543 vss __builtin_vec_splat (vss, signed int);
3544 VSPLTH VSPLTH_VSS
3545 vus __builtin_vec_splat (vus, signed int);
3546 VSPLTH VSPLTH_VUS
3547 vbs __builtin_vec_splat (vbs, signed int);
3548 VSPLTH VSPLTH_VBS
3549 vp __builtin_vec_splat (vp, signed int);
3550 VSPLTH VSPLTH_VP
3551 vf __builtin_vec_splat (vf, signed int);
3552 VSPLTW VSPLTW_VF
3553 vsi __builtin_vec_splat (vsi, signed int);
3554 VSPLTW VSPLTW_VSI
3555 vui __builtin_vec_splat (vui, signed int);
3556 VSPLTW VSPLTW_VUI
3557 vbi __builtin_vec_splat (vbi, signed int);
3558 VSPLTW VSPLTW_VBI
3559 vd __builtin_vec_splat (vd, signed int);
3560 XXSPLTD_V2DF
3561 vsll __builtin_vec_splat (vsll, signed int);
3562 XXSPLTD_V2DI XXSPLTD_VSLL
3563 vull __builtin_vec_splat (vull, signed int);
3564 XXSPLTD_V2DI XXSPLTD_VULL
3565 vbll __builtin_vec_splat (vbll, signed int);
3566 XXSPLTD_V2DI XXSPLTD_VBLL
3567
3568[VEC_SPLAT_S8, vec_splat_s8, __builtin_vec_splat_s8]
3569 vsc __builtin_vec_splat_s8 (signed int);
3570 VSPLTISB
3571
3572[VEC_SPLAT_S16, vec_splat_s16, __builtin_vec_splat_s16]
3573 vss __builtin_vec_splat_s16 (signed int);
3574 VSPLTISH
3575
3576[VEC_SPLAT_S32, vec_splat_s32, __builtin_vec_splat_s32]
3577 vsi __builtin_vec_splat_s32 (signed int);
3578 VSPLTISW
3579
3580; There are no entries for vec_splat_u{8,16,32}. These are handled
3581; in altivec.h with a #define and a cast.
3582
7e836079 3583[VEC_SPLATI, vec_splati, __builtin_vec_xxspltiw]
e2693a72
BS
3584 vsi __builtin_vec_xxspltiw (signed int);
3585 VXXSPLTIW_V4SI
3586 vf __builtin_vec_xxspltiw (float);
3587 VXXSPLTIW_V4SF
3588
7e836079 3589[VEC_SPLATID, vec_splatid, __builtin_vec_xxspltid]
e2693a72
BS
3590 vd __builtin_vec_xxspltid (float);
3591 VXXSPLTIDP
3592
7e836079 3593[VEC_SPLATI_INS, vec_splati_ins, __builtin_vec_xxsplti32dx]
e2693a72
BS
3594 vsi __builtin_vec_xxsplti32dx (vsi, const int, signed int);
3595 VXXSPLTI32DX_V4SI VXXSPLTI32DX_VSI
3596 vui __builtin_vec_xxsplti32dx (vui, const int, unsigned int);
3597 VXXSPLTI32DX_V4SI VXXSPLTI32DX_VUI
3598 vf __builtin_vec_xxsplti32dx (vf, const int, float);
3599 VXXSPLTI32DX_V4SF
3600
3601; There are no actual builtins for vec_splats. There is special handling for
e53b6e56 3602; this in altivec_resolve_overloaded_builtin in rs6000-c.cc, where the call
e2693a72
BS
3603; is replaced by a constructor. The single overload here causes
3604; __builtin_vec_splats to be registered with the front end so that can happen.
3605[VEC_SPLATS, vec_splats, __builtin_vec_splats]
3606 vsi __builtin_vec_splats (vsi);
3607 ABS_V4SI SPLATS_FAKERY
3608
7e836079 3609[VEC_SQRT, vec_sqrt, __builtin_vec_sqrt]
e2693a72
BS
3610 vf __builtin_vec_sqrt (vf);
3611 XVSQRTSP
3612 vd __builtin_vec_sqrt (vd);
3613 XVSQRTDP
3614
3615[VEC_SR, vec_sr, __builtin_vec_sr]
3616 vsc __builtin_vec_sr (vsc, vuc);
3617 VSRB VSRB_VSC
3618 vuc __builtin_vec_sr (vuc, vuc);
3619 VSRB VSRB_VUC
3620 vss __builtin_vec_sr (vss, vus);
3621 VSRH VSRH_VSS
3622 vus __builtin_vec_sr (vus, vus);
3623 VSRH VSRH_VUS
3624 vsi __builtin_vec_sr (vsi, vui);
3625 VSRW VSRW_VSI
3626 vui __builtin_vec_sr (vui, vui);
3627 VSRW VSRW_VUI
3628 vsll __builtin_vec_sr (vsll, vull);
3629 VSRD VSRD_VSLL
3630 vull __builtin_vec_sr (vull, vull);
3631 VSRD VSRD_VULL
3632 vsq __builtin_vec_sr (vsq, vuq);
3633 VSRQ VSRQ_VSQ
3634 vuq __builtin_vec_sr (vuq, vuq);
3635 VSRQ VSRQ_VUQ
3636
3637[VEC_SRA, vec_sra, __builtin_vec_sra]
3638 vsc __builtin_vec_sra (vsc, vuc);
3639 VSRAB VSRAB_VSC
3640 vuc __builtin_vec_sra (vuc, vuc);
3641 VSRAB VSRAB_VUC
3642 vss __builtin_vec_sra (vss, vus);
3643 VSRAH VSRAH_VSS
3644 vus __builtin_vec_sra (vus, vus);
3645 VSRAH VSRAH_VUS
3646 vsi __builtin_vec_sra (vsi, vui);
3647 VSRAW VSRAW_VSI
3648 vui __builtin_vec_sra (vui, vui);
3649 VSRAW VSRAW_VUI
3650 vsll __builtin_vec_sra (vsll, vull);
3651 VSRAD VSRAD_VSLL
3652 vull __builtin_vec_sra (vull, vull);
3653 VSRAD VSRAD_VULL
3654 vsq __builtin_vec_sra (vsq, vuq);
3655 VSRAQ VSRAQ_VSQ
3656 vuq __builtin_vec_sra (vuq, vuq);
3657 VSRAQ VSRAQ_VUQ
3658
7e836079 3659[VEC_SRDB, vec_srdb, __builtin_vec_srdb]
e2693a72
BS
3660 vsc __builtin_vec_srdb (vsc, vsc, const int);
3661 VSRDB_V16QI VSRDB_VSC
3662 vuc __builtin_vec_srdb (vuc, vuc, const int);
3663 VSRDB_V16QI VSRDB_VUC
3664 vss __builtin_vec_srdb (vss, vss, const int);
3665 VSRDB_V8HI VSRDB_VSS
3666 vus __builtin_vec_srdb (vus, vus, const int);
3667 VSRDB_V8HI VSRDB_VUS
3668 vsi __builtin_vec_srdb (vsi, vsi, const int);
3669 VSRDB_V4SI VSRDB_VSI
3670 vui __builtin_vec_srdb (vui, vui, const int);
3671 VSRDB_V4SI VSRDB_VUI
3672 vsll __builtin_vec_srdb (vsll, vsll, const int);
3673 VSRDB_V2DI VSRDB_VSLL
3674 vull __builtin_vec_srdb (vull, vull, const int);
3675 VSRDB_V2DI VSRDB_VULL
3676
3677[VEC_SRL, vec_srl, __builtin_vec_srl]
3678 vsc __builtin_vec_srl (vsc, vuc);
3679 VSR VSR_VSC
3680 vuc __builtin_vec_srl (vuc, vuc);
3681 VSR VSR_VUC
3682 vss __builtin_vec_srl (vss, vuc);
3683 VSR VSR_VSS
3684 vus __builtin_vec_srl (vus, vuc);
3685 VSR VSR_VUS
3686 vp __builtin_vec_srl (vp, vuc);
3687 VSR VSR_VP
3688 vsi __builtin_vec_srl (vsi, vuc);
3689 VSR VSR_VSI
3690 vui __builtin_vec_srl (vui, vuc);
3691 VSR VSR_VUI
3692 vsll __builtin_vec_srl (vsll, vuc);
3693 VSR VSR_VSLL
3694 vull __builtin_vec_srl (vull, vuc);
3695 VSR VSR_VULL
3696; The following variants are deprecated.
3697 vsc __builtin_vec_srl (vsc, vus);
3698 VSR VSR_VSC_VUS
3699 vsc __builtin_vec_srl (vsc, vui);
3700 VSR VSR_VSC_VUI
3701 vuc __builtin_vec_srl (vuc, vus);
3702 VSR VSR_VUC_VUS
3703 vuc __builtin_vec_srl (vuc, vui);
3704 VSR VSR_VUC_VUI
3705 vbc __builtin_vec_srl (vbc, vuc);
3706 VSR VSR_VBC_VUC
3707 vbc __builtin_vec_srl (vbc, vus);
3708 VSR VSR_VBC_VUS
3709 vbc __builtin_vec_srl (vbc, vui);
3710 VSR VSR_VBC_VUI
3711 vss __builtin_vec_srl (vss, vus);
3712 VSR VSR_VSS_VUS
3713 vss __builtin_vec_srl (vss, vui);
3714 VSR VSR_VSS_VUI
3715 vus __builtin_vec_srl (vus, vus);
3716 VSR VSR_VUS_VUS
3717 vus __builtin_vec_srl (vus, vui);
3718 VSR VSR_VUS_VUI
3719 vbs __builtin_vec_srl (vbs, vuc);
3720 VSR VSR_VBS_VUC
3721 vbs __builtin_vec_srl (vbs, vus);
3722 VSR VSR_VBS_VUS
3723 vbs __builtin_vec_srl (vbs, vui);
3724 VSR VSR_VBS_VUI
3725 vp __builtin_vec_srl (vp, vus);
3726 VSR VSR_VP_VUS
3727 vp __builtin_vec_srl (vp, vui);
3728 VSR VSR_VP_VUI
3729 vsi __builtin_vec_srl (vsi, vus);
3730 VSR VSR_VSI_VUS
3731 vsi __builtin_vec_srl (vsi, vui);
3732 VSR VSR_VSI_VUI
3733 vui __builtin_vec_srl (vui, vus);
3734 VSR VSR_VUI_VUS
3735 vui __builtin_vec_srl (vui, vui);
3736 VSR VSR_VUI_VUI
3737 vbi __builtin_vec_srl (vbi, vuc);
3738 VSR VSR_VBI_VUC
3739 vbi __builtin_vec_srl (vbi, vus);
3740 VSR VSR_VBI_VUS
3741 vbi __builtin_vec_srl (vbi, vui);
3742 VSR VSR_VBI_VUI
3743
3744[VEC_SRO, vec_sro, __builtin_vec_sro]
3745 vsc __builtin_vec_sro (vsc, vsc);
3746 VSRO VSRO_VSCS
3747 vsc __builtin_vec_sro (vsc, vuc);
3748 VSRO VSRO_VSCU
3749 vuc __builtin_vec_sro (vuc, vsc);
3750 VSRO VSRO_VUCS
3751 vuc __builtin_vec_sro (vuc, vuc);
3752 VSRO VSRO_VUCU
3753 vss __builtin_vec_sro (vss, vsc);
3754 VSRO VSRO_VSSS
3755 vss __builtin_vec_sro (vss, vuc);
3756 VSRO VSRO_VSSU
3757 vus __builtin_vec_sro (vus, vsc);
3758 VSRO VSRO_VUSS
3759 vus __builtin_vec_sro (vus, vuc);
3760 VSRO VSRO_VUSU
3761 vp __builtin_vec_sro (vp, vsc);
3762 VSRO VSRO_VPS
3763 vp __builtin_vec_sro (vp, vuc);
3764 VSRO VSRO_VPU
3765 vsi __builtin_vec_sro (vsi, vsc);
3766 VSRO VSRO_VSIS
3767 vsi __builtin_vec_sro (vsi, vuc);
3768 VSRO VSRO_VSIU
3769 vui __builtin_vec_sro (vui, vsc);
3770 VSRO VSRO_VUIS
3771 vui __builtin_vec_sro (vui, vuc);
3772 VSRO VSRO_VUIU
3773 vsll __builtin_vec_sro (vsll, vsc);
3774 VSRO VSRO_VSLLS
3775 vsll __builtin_vec_sro (vsll, vuc);
3776 VSRO VSRO_VSLLU
3777 vull __builtin_vec_sro (vull, vsc);
3778 VSRO VSRO_VULLS
3779 vull __builtin_vec_sro (vull, vuc);
3780 VSRO VSRO_VULLU
3781 vf __builtin_vec_sro (vf, vsc);
3782 VSRO VSRO_VFS
3783 vf __builtin_vec_sro (vf, vuc);
3784 VSRO VSRO_VFU
3785
7e836079 3786[VEC_SRV, vec_srv, __builtin_vec_vsrv]
e2693a72
BS
3787 vuc __builtin_vec_vsrv (vuc, vuc);
3788 VSRV
3789
3790[VEC_ST, vec_st, __builtin_vec_st]
3791 void __builtin_vec_st (vsc, signed long long, vsc *);
3792 STVX_V16QI STVX_VSC
3793 void __builtin_vec_st (vsc, signed long long, signed char *);
3794 STVX_V16QI STVX_SC
3795 void __builtin_vec_st (vuc, signed long long, vuc *);
3796 STVX_V16QI STVX_VUC
3797 void __builtin_vec_st (vuc, signed long long, unsigned char *);
3798 STVX_V16QI STVX_UC
3799 void __builtin_vec_st (vbc, signed long long, vbc *);
3800 STVX_V16QI STVX_VBC
3801 void __builtin_vec_st (vbc, signed long long, signed char *);
3802 STVX_V16QI STVX_SC_B
3803 void __builtin_vec_st (vbc, signed long long, unsigned char *);
3804 STVX_V16QI STVX_UC_B
3805 void __builtin_vec_st (vss, signed long long, vss *);
3806 STVX_V8HI STVX_VSS
3807 void __builtin_vec_st (vss, signed long long, signed short *);
3808 STVX_V8HI STVX_SS
3809 void __builtin_vec_st (vus, signed long long, vus *);
3810 STVX_V8HI STVX_VUS
3811 void __builtin_vec_st (vus, signed long long, unsigned short *);
3812 STVX_V8HI STVX_US
3813 void __builtin_vec_st (vbs, signed long long, vbs *);
3814 STVX_V8HI STVX_VBS
3815 void __builtin_vec_st (vbs, signed long long, signed short *);
3816 STVX_V8HI STVX_SS_B
3817 void __builtin_vec_st (vbs, signed long long, unsigned short *);
3818 STVX_V8HI STVX_US_B
3819 void __builtin_vec_st (vp, signed long long, vp *);
3820 STVX_V8HI STVX_P
3821 void __builtin_vec_st (vsi, signed long long, vsi *);
3822 STVX_V4SI STVX_VSI
3823 void __builtin_vec_st (vsi, signed long long, signed int *);
3824 STVX_V4SI STVX_SI
3825 void __builtin_vec_st (vui, signed long long, vui *);
3826 STVX_V4SI STVX_VUI
3827 void __builtin_vec_st (vui, signed long long, unsigned int *);
3828 STVX_V4SI STVX_UI
3829 void __builtin_vec_st (vbi, signed long long, vbi *);
3830 STVX_V4SI STVX_VBI
3831 void __builtin_vec_st (vbi, signed long long, signed int *);
3832 STVX_V4SI STVX_SI_B
3833 void __builtin_vec_st (vbi, signed long long, unsigned int *);
3834 STVX_V4SI STVX_UI_B
3835 void __builtin_vec_st (vsll, signed long long, vsll *);
3836 STVX_V2DI STVX_VSLL
3837 void __builtin_vec_st (vsll, signed long long, signed long long *);
3838 STVX_V2DI STVX_SLL
3839 void __builtin_vec_st (vull, signed long long, vull *);
3840 STVX_V2DI STVX_VULL
3841 void __builtin_vec_st (vull, signed long long, unsigned long long *);
3842 STVX_V2DI STVX_ULL
3843 void __builtin_vec_st (vbll, signed long long, vbll *);
3844 STVX_V2DI STVX_VBLL
3845 void __builtin_vec_st (vf, signed long long, vf *);
3846 STVX_V4SF STVX_VF
3847 void __builtin_vec_st (vf, signed long long, float *);
3848 STVX_V4SF STVX_F
3849 void __builtin_vec_st (vd, signed long long, vd *);
3850 STVX_V2DF STVX_VD
3851 void __builtin_vec_st (vd, signed long long, double *);
3852 STVX_V2DF STVX_D
3853; The following variants are deprecated.
3854 void __builtin_vec_st (vbll, signed long long, signed long long *);
3855 STVX_V2DI STVX_SLL_B
3856 void __builtin_vec_st (vbll, signed long long, unsigned long long *);
3857 STVX_V2DI STVX_ULL_B
3858
3859[VEC_STE, vec_ste, __builtin_vec_ste]
3860 void __builtin_vec_ste (vsc, signed long long, signed char *);
3861 STVEBX STVEBX_S
3862 void __builtin_vec_ste (vuc, signed long long, unsigned char *);
3863 STVEBX STVEBX_U
3864 void __builtin_vec_ste (vbc, signed long long, signed char *);
3865 STVEBX STVEBX_BS
3866 void __builtin_vec_ste (vbc, signed long long, unsigned char *);
3867 STVEBX STVEBX_BU
3868 void __builtin_vec_ste (vss, signed long long, signed short *);
3869 STVEHX STVEHX_S
3870 void __builtin_vec_ste (vus, signed long long, unsigned short *);
3871 STVEHX STVEHX_U
3872 void __builtin_vec_ste (vbs, signed long long, signed short *);
3873 STVEHX STVEHX_BS
3874 void __builtin_vec_ste (vbs, signed long long, unsigned short *);
3875 STVEHX STVEHX_BU
3876 void __builtin_vec_ste (vp, signed long long, signed short *);
3877 STVEHX STVEHX_PS
3878 void __builtin_vec_ste (vp, signed long long, unsigned short *);
3879 STVEHX STVEHX_PU
3880 void __builtin_vec_ste (vsi, signed long long, signed int *);
3881 STVEWX STVEHWX_S
3882 void __builtin_vec_ste (vui, signed long long, unsigned int *);
3883 STVEWX STVEWX_U
3884 void __builtin_vec_ste (vbi, signed long long, signed int *);
3885 STVEWX STVEWX_BS
3886 void __builtin_vec_ste (vbi, signed long long, unsigned int *);
3887 STVEWX STVEWX_BU
3888 void __builtin_vec_ste (vf, signed long long, float *);
3889 STVEWX STVEWX_F
3890
3891; There are no builtins for VEC_STEP; this is handled directly
3892; with a constant replacement in rs6000_resolve_overloaded_builtin.
3893; The single overload registers __builtin_vec_step with the front end
3894; so this can happen.
3895[VEC_STEP, vec_step, __builtin_vec_step]
3896 signed int __builtin_vec_step (vsi);
3897 VCLZLSBB_V4SI STEP_FAKERY
3898
3899[VEC_STL, vec_stl, __builtin_vec_stl]
3900 void __builtin_vec_stl (vsc, signed long long, vsc *);
3901 STVXL_V16QI STVXL_VSC
3902 void __builtin_vec_stl (vsc, signed long long, signed char *);
3903 STVXL_V16QI STVXL_SC
3904 void __builtin_vec_stl (vuc, signed long long, vuc *);
3905 STVXL_V16QI STVXL_VUC
3906 void __builtin_vec_stl (vuc, signed long long, unsigned char *);
3907 STVXL_V16QI STVXL_UC
3908 void __builtin_vec_stl (vbc, signed long long, vbc *);
3909 STVXL_V16QI STVXL_VBC
3910 void __builtin_vec_stl (vbc, signed long long, signed char *);
3911 STVXL_V16QI STVXL_SC_B
3912 void __builtin_vec_stl (vbc, signed long long, unsigned char *);
3913 STVXL_V16QI STVXL_UC_B
3914 void __builtin_vec_stl (vss, signed long long, vss *);
3915 STVXL_V8HI STVXL_VSS
3916 void __builtin_vec_stl (vss, signed long long, signed short *);
3917 STVXL_V8HI STVXL_SS
3918 void __builtin_vec_stl (vus, signed long long, vus *);
3919 STVXL_V8HI STVXL_VUS
3920 void __builtin_vec_stl (vus, signed long long, unsigned short *);
3921 STVXL_V8HI STVXL_US
3922 void __builtin_vec_stl (vbs, signed long long, vbs *);
3923 STVXL_V8HI STVXL_VBS
3924 void __builtin_vec_stl (vbs, signed long long, signed short *);
3925 STVXL_V8HI STVXL_SS_B
3926 void __builtin_vec_stl (vbs, signed long long, unsigned short *);
3927 STVXL_V8HI STVXL_US_B
3928 void __builtin_vec_stl (vp, signed long long, vp *);
3929 STVXL_V8HI STVXL_P
3930 void __builtin_vec_stl (vsi, signed long long, vsi *);
3931 STVXL_V4SI STVXL_VSI
3932 void __builtin_vec_stl (vsi, signed long long, signed int *);
3933 STVXL_V4SI STVXL_SI
3934 void __builtin_vec_stl (vui, signed long long, vui *);
3935 STVXL_V4SI STVXL_VUI
3936 void __builtin_vec_stl (vui, signed long long, unsigned int *);
3937 STVXL_V4SI STVXL_UI
3938 void __builtin_vec_stl (vbi, signed long long, vbi *);
3939 STVXL_V4SI STVXL_VBI
3940 void __builtin_vec_stl (vbi, signed long long, signed int *);
3941 STVXL_V4SI STVXL_SI_B
3942 void __builtin_vec_stl (vbi, signed long long, unsigned int *);
3943 STVXL_V4SI STVXL_UI_B
3944 void __builtin_vec_stl (vsll, signed long long, vsll *);
3945 STVXL_V2DI STVXL_VSLL
3946 void __builtin_vec_stl (vsll, signed long long, signed long long *);
3947 STVXL_V2DI STVXL_SLL
3948 void __builtin_vec_stl (vull, signed long long, vull *);
3949 STVXL_V2DI STVXL_VULL
3950 void __builtin_vec_stl (vull, signed long long, unsigned long long *);
3951 STVXL_V2DI STVXL_ULL
3952 void __builtin_vec_stl (vbll, signed long long, vbll *);
3953 STVXL_V2DI STVXL_VBLL
3954 void __builtin_vec_stl (vbll, signed long long, signed long long *);
3955 STVXL_V2DI STVXL_SLL_B
3956 void __builtin_vec_stl (vbll, signed long long, unsigned long long *);
3957 STVXL_V2DI STVXL_ULL_B
3958 void __builtin_vec_stl (vf, signed long long, vf *);
3959 STVXL_V4SF STVXL_VF
3960 void __builtin_vec_stl (vf, signed long long, float *);
3961 STVXL_V4SF STVXL_F
3962 void __builtin_vec_stl (vd, signed long long, vd *);
3963 STVXL_V2DF STVXL_VD
3964 void __builtin_vec_stl (vd, signed long long, double *);
3965 STVXL_V2DF STVXL_D
3966
7e836079 3967[VEC_STRIL, vec_stril, __builtin_vec_stril]
e2693a72
BS
3968 vuc __builtin_vec_stril (vuc);
3969 VSTRIBL VSTRIBL_U
3970 vsc __builtin_vec_stril (vsc);
3971 VSTRIBL VSTRIBL_S
3972 vus __builtin_vec_stril (vus);
3973 VSTRIHL VSTRIHL_U
3974 vss __builtin_vec_stril (vss);
3975 VSTRIHL VSTRIHL_S
3976
7e836079 3977[VEC_STRIL_P, vec_stril_p, __builtin_vec_stril_p]
e2693a72
BS
3978 signed int __builtin_vec_stril_p (vuc);
3979 VSTRIBL_P VSTRIBL_PU
3980 signed int __builtin_vec_stril_p (vsc);
3981 VSTRIBL_P VSTRIBL_PS
3982 signed int __builtin_vec_stril_p (vus);
3983 VSTRIHL_P VSTRIHL_PU
3984 signed int __builtin_vec_stril_p (vss);
3985 VSTRIHL_P VSTRIHL_PS
3986
7e836079 3987[VEC_STRIR, vec_strir, __builtin_vec_strir]
e2693a72
BS
3988 vuc __builtin_vec_strir (vuc);
3989 VSTRIBR VSTRIBR_U
3990 vsc __builtin_vec_strir (vsc);
3991 VSTRIBR VSTRIBR_S
3992 vus __builtin_vec_strir (vus);
3993 VSTRIHR VSTRIHR_U
3994 vss __builtin_vec_strir (vss);
3995 VSTRIHR VSTRIHR_S
3996
7e836079 3997[VEC_STRIR_P, vec_strir_p, __builtin_vec_strir_p]
e2693a72
BS
3998 signed int __builtin_vec_strir_p (vuc);
3999 VSTRIBR_P VSTRIBR_PU
4000 signed int __builtin_vec_strir_p (vsc);
4001 VSTRIBR_P VSTRIBR_PS
4002 signed int __builtin_vec_strir_p (vus);
4003 VSTRIHR_P VSTRIHR_PU
4004 signed int __builtin_vec_strir_p (vss);
4005 VSTRIHR_P VSTRIHR_PS
4006
4007[VEC_STVLX, vec_stvlx, __builtin_vec_stvlx, __PPU__]
4008 void __builtin_vec_stvlx (vbc, signed long long, vbc *);
4009 STVLX STVLX_VBC
4010 void __builtin_vec_stvlx (vsc, signed long long, vsc *);
4011 STVLX STVLX_VSC
4012 void __builtin_vec_stvlx (vsc, signed long long, signed char *);
4013 STVLX STVLX_SC
4014 void __builtin_vec_stvlx (vuc, signed long long, vuc *);
4015 STVLX STVLX_VUC
4016 void __builtin_vec_stvlx (vuc, signed long long, unsigned char *);
4017 STVLX STVLX_UC
4018 void __builtin_vec_stvlx (vbs, signed long long, vbs *);
4019 STVLX STVLX_VBS
4020 void __builtin_vec_stvlx (vss, signed long long, vss *);
4021 STVLX STVLX_VSS
4022 void __builtin_vec_stvlx (vss, signed long long, signed short *);
4023 STVLX STVLX_SS
4024 void __builtin_vec_stvlx (vus, signed long long, vus *);
4025 STVLX STVLX_VUS
4026 void __builtin_vec_stvlx (vus, signed long long, unsigned short *);
4027 STVLX STVLX_US
4028 void __builtin_vec_stvlx (vp, signed long long, vp *);
4029 STVLX STVLX_VP
4030 void __builtin_vec_stvlx (vbi, signed long long, vbi *);
4031 STVLX STVLX_VBI
4032 void __builtin_vec_stvlx (vsi, signed long long, vsi *);
4033 STVLX STVLX_VSI
4034 void __builtin_vec_stvlx (vsi, signed long long, signed int *);
4035 STVLX STVLX_SI
4036 void __builtin_vec_stvlx (vui, signed long long, vui *);
4037 STVLX STVLX_VUI
4038 void __builtin_vec_stvlx (vui, signed long long, unsigned int *);
4039 STVLX STVLX_UI
4040 void __builtin_vec_stvlx (vf, signed long long, vf *);
4041 STVLX STVLX_VF
4042 void __builtin_vec_stvlx (vf, signed long long, float *);
4043 STVLX STVLX_F
4044
4045[VEC_STVLXL, vec_stvlxl, __builtin_vec_stvlxl, __PPU__]
4046 void __builtin_vec_stvlxl (vbc, signed long long, vbc *);
4047 STVLXL STVLXL_VBC
4048 void __builtin_vec_stvlxl (vsc, signed long long, vsc *);
4049 STVLXL STVLXL_VSC
4050 void __builtin_vec_stvlxl (vsc, signed long long, signed char *);
4051 STVLXL STVLXL_SC
4052 void __builtin_vec_stvlxl (vuc, signed long long, vuc *);
4053 STVLXL STVLXL_VUC
4054 void __builtin_vec_stvlxl (vuc, signed long long, unsigned char *);
4055 STVLXL STVLXL_UC
4056 void __builtin_vec_stvlxl (vbs, signed long long, vbs *);
4057 STVLXL STVLXL_VBS
4058 void __builtin_vec_stvlxl (vss, signed long long, vss *);
4059 STVLXL STVLXL_VSS
4060 void __builtin_vec_stvlxl (vss, signed long long, signed short *);
4061 STVLXL STVLXL_SS
4062 void __builtin_vec_stvlxl (vus, signed long long, vus *);
4063 STVLXL STVLXL_VUS
4064 void __builtin_vec_stvlxl (vus, signed long long, unsigned short *);
4065 STVLXL STVLXL_US
4066 void __builtin_vec_stvlxl (vp, signed long long, vp *);
4067 STVLXL STVLXL_VP
4068 void __builtin_vec_stvlxl (vbi, signed long long, vbi *);
4069 STVLXL STVLXL_VBI
4070 void __builtin_vec_stvlxl (vsi, signed long long, vsi *);
4071 STVLXL STVLXL_VSI
4072 void __builtin_vec_stvlxl (vsi, signed long long, signed int *);
4073 STVLXL STVLXL_SI
4074 void __builtin_vec_stvlxl (vui, signed long long, vui *);
4075 STVLXL STVLXL_VUI
4076 void __builtin_vec_stvlxl (vui, signed long long, unsigned int *);
4077 STVLXL STVLXL_UI
4078 void __builtin_vec_stvlxl (vf, signed long long, vf *);
4079 STVLXL STVLXL_VF
4080 void __builtin_vec_stvlxl (vf, signed long long, float *);
4081 STVLXL STVLXL_F
4082
4083[VEC_STVRX, vec_stvrx, __builtin_vec_stvrx, __PPU__]
4084 void __builtin_vec_stvrx (vbc, signed long long, vbc *);
4085 STVRX STVRX_VBC
4086 void __builtin_vec_stvrx (vsc, signed long long, vsc *);
4087 STVRX STVRX_VSC
4088 void __builtin_vec_stvrx (vsc, signed long long, signed char *);
4089 STVRX STVRX_SC
4090 void __builtin_vec_stvrx (vuc, signed long long, vuc *);
4091 STVRX STVRX_VUC
4092 void __builtin_vec_stvrx (vuc, signed long long, unsigned char *);
4093 STVRX STVRX_UC
4094 void __builtin_vec_stvrx (vbs, signed long long, vbs *);
4095 STVRX STVRX_VBS
4096 void __builtin_vec_stvrx (vss, signed long long, vss *);
4097 STVRX STVRX_VSS
4098 void __builtin_vec_stvrx (vss, signed long long, signed short *);
4099 STVRX STVRX_SS
4100 void __builtin_vec_stvrx (vus, signed long long, vus *);
4101 STVRX STVRX_VUS
4102 void __builtin_vec_stvrx (vus, signed long long, unsigned short *);
4103 STVRX STVRX_US
4104 void __builtin_vec_stvrx (vp, signed long long, vp *);
4105 STVRX STVRX_VP
4106 void __builtin_vec_stvrx (vbi, signed long long, vbi *);
4107 STVRX STVRX_VBI
4108 void __builtin_vec_stvrx (vsi, signed long long, vsi *);
4109 STVRX STVRX_VSI
4110 void __builtin_vec_stvrx (vsi, signed long long, signed int *);
4111 STVRX STVRX_SI
4112 void __builtin_vec_stvrx (vui, signed long long, vui *);
4113 STVRX STVRX_VUI
4114 void __builtin_vec_stvrx (vui, signed long long, unsigned int *);
4115 STVRX STVRX_UI
4116 void __builtin_vec_stvrx (vf, signed long long, vf *);
4117 STVRX STVRX_VF
4118 void __builtin_vec_stvrx (vf, signed long long, float *);
4119 STVRX STVRX_F
4120
4121[VEC_STVRXL, vec_stvrxl, __builtin_vec_stvrxl, __PPU__]
4122 void __builtin_vec_stvrxl (vbc, signed long long, vbc *);
4123 STVRXL STVRXL_VBC
4124 void __builtin_vec_stvrxl (vsc, signed long long, vsc *);
4125 STVRXL STVRXL_VSC
4126 void __builtin_vec_stvrxl (vsc, signed long long, signed char *);
4127 STVRXL STVRXL_SC
4128 void __builtin_vec_stvrxl (vuc, signed long long, vuc *);
4129 STVRXL STVRXL_VUC
4130 void __builtin_vec_stvrxl (vuc, signed long long, unsigned char *);
4131 STVRXL STVRXL_UC
4132 void __builtin_vec_stvrxl (vbs, signed long long, vbs *);
4133 STVRXL STVRXL_VBS
4134 void __builtin_vec_stvrxl (vss, signed long long, vss *);
4135 STVRXL STVRXL_VSS
4136 void __builtin_vec_stvrxl (vss, signed long long, signed short *);
4137 STVRXL STVRXL_SS
4138 void __builtin_vec_stvrxl (vus, signed long long, vus *);
4139 STVRXL STVRXL_VUS
4140 void __builtin_vec_stvrxl (vus, signed long long, unsigned short *);
4141 STVRXL STVRXL_US
4142 void __builtin_vec_stvrxl (vp, signed long long, vp *);
4143 STVRXL STVRXL_VP
4144 void __builtin_vec_stvrxl (vbi, signed long long, vbi *);
4145 STVRXL STVRXL_VBI
4146 void __builtin_vec_stvrxl (vsi, signed long long, vsi *);
4147 STVRXL STVRXL_VSI
4148 void __builtin_vec_stvrxl (vsi, signed long long, signed int *);
4149 STVRXL STVRXL_SI
4150 void __builtin_vec_stvrxl (vui, signed long long, vui *);
4151 STVRXL STVRXL_VUI
4152 void __builtin_vec_stvrxl (vui, signed long long, unsigned int *);
4153 STVRXL STVRXL_UI
4154 void __builtin_vec_stvrxl (vf, signed long long, vf *);
4155 STVRXL STVRXL_VF
4156 void __builtin_vec_stvrxl (vf, signed long long, float *);
4157 STVRXL STVRXL_F
4158
7e836079 4159[VEC_STXVL, vec_xst_len, __builtin_vec_stxvl]
e2693a72
BS
4160 void __builtin_vec_stxvl (vsc, signed char *, unsigned int);
4161 STXVL STXVL_VSC
4162 void __builtin_vec_stxvl (vuc, unsigned char *, unsigned int);
4163 STXVL STXVL_VUC
4164 void __builtin_vec_stxvl (vss, signed short *, unsigned int);
4165 STXVL STXVL_VSS
4166 void __builtin_vec_stxvl (vus, unsigned short *, unsigned int);
4167 STXVL STXVL_VUS
4168 void __builtin_vec_stxvl (vsi, signed int *, unsigned int);
4169 STXVL STXVL_VSI
4170 void __builtin_vec_stxvl (vui, unsigned int *, unsigned int);
4171 STXVL STXVL_VUI
4172 void __builtin_vec_stxvl (vsll, signed long long *, unsigned int);
4173 STXVL STXVL_VSLL
4174 void __builtin_vec_stxvl (vull, unsigned long long *, unsigned int);
4175 STXVL STXVL_VULL
4176 void __builtin_vec_stxvl (vsq, signed __int128 *, unsigned int);
4177 STXVL STXVL_VSQ
4178 void __builtin_vec_stxvl (vuq, unsigned __int128 *, unsigned int);
4179 STXVL STXVL_VUQ
4180 void __builtin_vec_stxvl (vf, float *, unsigned int);
4181 STXVL STXVL_VF
4182 void __builtin_vec_stxvl (vd, double *, unsigned int);
4183 STXVL STXVL_VD
4184
4185[VEC_SUB, vec_sub, __builtin_vec_sub]
4186 vsc __builtin_vec_sub (vsc, vsc);
4187 VSUBUBM VSUBUBM_VSC
4188 vuc __builtin_vec_sub (vuc, vuc);
4189 VSUBUBM VSUBUBM_VUC
4190 vss __builtin_vec_sub (vss, vss);
4191 VSUBUHM VSUBUHM_VSS
4192 vus __builtin_vec_sub (vus, vus);
4193 VSUBUHM VSUBUHM_VUS
4194 vsi __builtin_vec_sub (vsi, vsi);
4195 VSUBUWM VSUBUWM_VSI
4196 vui __builtin_vec_sub (vui, vui);
4197 VSUBUWM VSUBUWM_VUI
4198 vsll __builtin_vec_sub (vsll, vsll);
4199 VSUBUDM VSUBUDM_VSLL
4200 vull __builtin_vec_sub (vull, vull);
4201 VSUBUDM VSUBUDM_VULL
4202 vsq __builtin_vec_sub (vsq, vsq);
4203 VSUBUQM VSUBUQM_VSQ
4204 vuq __builtin_vec_sub (vuq, vuq);
4205 VSUBUQM VSUBUQM_VUQ
4206 vf __builtin_vec_sub (vf, vf);
4207 VSUBFP
4208 vd __builtin_vec_sub (vd, vd);
4209 XVSUBDP
4210; The following variants are deprecated.
4211 vsc __builtin_vec_sub (vsc, vbc);
4212 VSUBUBM VSUBUBM_VSC_VBC
4213 vsc __builtin_vec_sub (vbc, vsc);
4214 VSUBUBM VSUBUBM_VBC_VSC
4215 vuc __builtin_vec_sub (vuc, vbc);
4216 VSUBUBM VSUBUBM_VUC_VBC
4217 vuc __builtin_vec_sub (vbc, vuc);
4218 VSUBUBM VSUBUBM_VBC_VUC
4219 vss __builtin_vec_sub (vss, vbs);
4220 VSUBUHM VSUBUHM_VSS_VBS
4221 vss __builtin_vec_sub (vbs, vss);
4222 VSUBUHM VSUBUHM_VBS_VSS
4223 vus __builtin_vec_sub (vus, vbs);
4224 VSUBUHM VSUBUHM_VUS_VBS
4225 vus __builtin_vec_sub (vbs, vus);
4226 VSUBUHM VSUBUHM_VBS_VUS
4227 vsi __builtin_vec_sub (vsi, vbi);
4228 VSUBUWM VSUBUWM_VSI_VBI
4229 vsi __builtin_vec_sub (vbi, vsi);
4230 VSUBUWM VSUBUWM_VBI_VSI
4231 vui __builtin_vec_sub (vui, vbi);
4232 VSUBUWM VSUBUWM_VUI_VBI
4233 vui __builtin_vec_sub (vbi, vui);
4234 VSUBUWM VSUBUWM_VBI_VUI
4235 vsll __builtin_vec_sub (vsll, vbll);
4236 VSUBUDM VSUBUDM_VSLL_VBLL
4237 vsll __builtin_vec_sub (vbll, vsll);
4238 VSUBUDM VSUBUDM_VBLL_VSLL
4239 vull __builtin_vec_sub (vull, vbll);
4240 VSUBUDM VSUBUDM_VULL_VBLL
4241 vull __builtin_vec_sub (vbll, vull);
4242 VSUBUDM VSUBUDM_VBLL_VULL
4243
4244[VEC_SUBC, vec_subc, __builtin_vec_subc]
4245 vsi __builtin_vec_subc (vsi, vsi);
4246 VSUBCUW VSUBCUW_VSI
4247 vui __builtin_vec_subc (vui, vui);
4248 VSUBCUW VSUBCUW_VUI
4249 vsq __builtin_vec_subc (vsq, vsq);
4250 VSUBCUQ VSUBCUQ_VSQ
4251 vuq __builtin_vec_subc (vuq, vuq);
4252 VSUBCUQ VSUBCUQ_VUQ
4253
4254; TODO: Note that the entry for VEC_SUBE currently gets ignored in
4255; altivec_resolve_overloaded_builtin. Revisit whether we can remove
4256; that. We still need to register the legal builtin forms here.
4257[VEC_SUBE, vec_sube, __builtin_vec_sube]
4258 vsq __builtin_vec_sube (vsq, vsq, vsq);
4259 VSUBEUQM VSUBEUQM_VSQ
4260 vuq __builtin_vec_sube (vuq, vuq, vuq);
4261 VSUBEUQM VSUBEUQM_VUQ
4262
4263; TODO: Note that the entry for VEC_SUBEC currently gets ignored in
4264; altivec_resolve_overloaded_builtin. Revisit whether we can remove
4265; that. We still need to register the legal builtin forms here.
4266[VEC_SUBEC, vec_subec, __builtin_vec_subec]
4267 vsq __builtin_vec_subec (vsq, vsq, vsq);
4268 VSUBECUQ VSUBECUQ_VSQ
4269 vuq __builtin_vec_subec (vuq, vuq, vuq);
4270 VSUBECUQ VSUBECUQ_VUQ
4271
4272[VEC_SUBS, vec_subs, __builtin_vec_subs]
4273 vuc __builtin_vec_subs (vuc, vuc);
4274 VSUBUBS
4275 vsc __builtin_vec_subs (vsc, vsc);
4276 VSUBSBS
4277 vus __builtin_vec_subs (vus, vus);
4278 VSUBUHS
4279 vss __builtin_vec_subs (vss, vss);
4280 VSUBSHS
4281 vui __builtin_vec_subs (vui, vui);
4282 VSUBUWS
4283 vsi __builtin_vec_subs (vsi, vsi);
4284 VSUBSWS
4285; The following variants are deprecated.
4286 vuc __builtin_vec_subs (vuc, vbc);
4287 VSUBUBS VSUBUBS_UB
4288 vuc __builtin_vec_subs (vbc, vuc);
4289 VSUBUBS VSUBUBS_BU
4290 vsc __builtin_vec_subs (vsc, vbc);
4291 VSUBSBS VSUBSBS_SB
4292 vsc __builtin_vec_subs (vbc, vsc);
4293 VSUBSBS VSUBSBS_BS
4294 vus __builtin_vec_subs (vus, vbs);
4295 VSUBUHS VSUBUHS_UB
4296 vus __builtin_vec_subs (vbs, vus);
4297 VSUBUHS VSUBUHS_BU
4298 vss __builtin_vec_subs (vss, vbs);
4299 VSUBSHS VSUBSHS_SB
4300 vss __builtin_vec_subs (vbs, vss);
4301 VSUBSHS VSUBSHS_BS
4302 vui __builtin_vec_subs (vui, vbi);
4303 VSUBUWS VSUBUWS_UB
4304 vui __builtin_vec_subs (vbi, vui);
4305 VSUBUWS VSUBUWS_BU
4306 vsi __builtin_vec_subs (vsi, vbi);
4307 VSUBSWS VSUBSWS_SB
4308 vsi __builtin_vec_subs (vbi, vsi);
4309 VSUBSWS VSUBSWS_BS
4310
4311[VEC_SUM2S, vec_sum2s, __builtin_vec_sum2s]
4312 vsi __builtin_vec_sum2s (vsi, vsi);
4313 VSUM2SWS
4314
4315[VEC_SUM4S, vec_sum4s, __builtin_vec_sum4s]
4316 vui __builtin_vec_sum4s (vuc, vui);
4317 VSUM4UBS
4318 vsi __builtin_vec_sum4s (vsc, vsi);
4319 VSUM4SBS
4320 vsi __builtin_vec_sum4s (vss, vsi);
4321 VSUM4SHS
4322
4323[VEC_SUMS, vec_sums, __builtin_vec_sums]
4324 vsi __builtin_vec_sums (vsi, vsi);
4325 VSUMSWS
4326
7e836079 4327[VEC_TERNARYLOGIC, vec_ternarylogic, __builtin_vec_xxeval]
e2693a72
BS
4328 vuc __builtin_vec_xxeval (vuc, vuc, vuc, const int);
4329 XXEVAL XXEVAL_VUC
4330 vus __builtin_vec_xxeval (vus, vus, vus, const int);
4331 XXEVAL XXEVAL_VUS
4332 vui __builtin_vec_xxeval (vui, vui, vui, const int);
4333 XXEVAL XXEVAL_VUI
4334 vull __builtin_vec_xxeval (vull, vull, vull, const int);
4335 XXEVAL XXEVAL_VULL
4336 vuq __builtin_vec_xxeval (vuq, vuq, vuq, const int);
4337 XXEVAL XXEVAL_VUQ
4338
7e836079 4339[VEC_TEST_LSBB_ALL_ONES, vec_test_lsbb_all_ones, __builtin_vec_xvtlsbb_all_ones]
e2693a72
BS
4340 signed int __builtin_vec_xvtlsbb_all_ones (vuc);
4341 XVTLSBB_ONES
4342
7e836079 4343[VEC_TEST_LSBB_ALL_ZEROS, vec_test_lsbb_all_zeros, __builtin_vec_xvtlsbb_all_zeros]
e2693a72
BS
4344 signed int __builtin_vec_xvtlsbb_all_zeros (vuc);
4345 XVTLSBB_ZEROS
4346
4347[VEC_TRUNC, vec_trunc, __builtin_vec_trunc]
4348 vf __builtin_vec_trunc (vf);
4349 VRFIZ
4350 vd __builtin_vec_trunc (vd);
4351 XVRDPIZ
4352
4353[VEC_TSTSFI_GT, SKIP, __builtin_dfp_dtstsfi_gt]
4354 signed int __builtin_dfp_dtstsfi_gt (const int, _Decimal64);
4355 TSTSFI_GT_DD
4356 signed int __builtin_dfp_dtstsfi_gt (const int, _Decimal128);
4357 TSTSFI_GT_TD
4358
4359[VEC_TSTSFI_EQ, SKIP, __builtin_dfp_dtstsfi_eq]
4360 signed int __builtin_dfp_dtstsfi_eq (const int, _Decimal64);
4361 TSTSFI_EQ_DD
4362 signed int __builtin_dfp_dtstsfi_eq (const int, _Decimal128);
4363 TSTSFI_EQ_TD
4364
4365[VEC_TSTSFI_LT, SKIP, __builtin_dfp_dtstsfi_lt]
4366 signed int __builtin_dfp_dtstsfi_lt (const int, _Decimal64);
4367 TSTSFI_LT_DD
4368 signed int __builtin_dfp_dtstsfi_lt (const int, _Decimal128);
4369 TSTSFI_LT_TD
4370
4371[VEC_TSTSFI_OV, SKIP, __builtin_dfp_dtstsfi_ov]
4372 signed int __builtin_dfp_dtstsfi_ov (const int, _Decimal64);
4373 TSTSFI_OV_DD
4374 signed int __builtin_dfp_dtstsfi_ov (const int, _Decimal128);
4375 TSTSFI_OV_TD
4376
4377[VEC_UNPACKH, vec_unpackh, __builtin_vec_unpackh]
4378 vss __builtin_vec_unpackh (vsc);
4379 VUPKHSB VUPKHSB_VSC
4380 vbs __builtin_vec_unpackh (vbc);
4381 VUPKHSB VUPKHSB_VBC
4382 vsi __builtin_vec_unpackh (vss);
4383 VUPKHSH VUPKHSH_VSS
4384 vbi __builtin_vec_unpackh (vbs);
4385 VUPKHSH VUPKHSH_VBS
4386 vui __builtin_vec_unpackh (vp);
4387 VUPKHPX
4388 vsll __builtin_vec_unpackh (vsi);
4389 VUPKHSW VUPKHSW_VSI
4390 vbll __builtin_vec_unpackh (vbi);
4391 VUPKHSW VUPKHSW_VBI
4392 vd __builtin_vec_unpackh (vf);
4393 DOUBLEH_V4SF VUPKHF
4394
4395[VEC_UNPACKL, vec_unpackl, __builtin_vec_unpackl]
4396 vss __builtin_vec_unpackl (vsc);
4397 VUPKLSB VUPKLSB_VSC
4398 vbs __builtin_vec_unpackl (vbc);
4399 VUPKLSB VUPKLSB_VBC
4400 vsi __builtin_vec_unpackl (vss);
4401 VUPKLSH VUPKLSH_VSS
4402 vbi __builtin_vec_unpackl (vbs);
4403 VUPKLSH VUPKLSH_VBS
4404 vui __builtin_vec_unpackl (vp);
4405 VUPKLPX
4406 vsll __builtin_vec_unpackl (vsi);
4407 VUPKLSW VUPKLSW_VSI
4408 vbll __builtin_vec_unpackl (vbi);
4409 VUPKLSW VUPKLSW_VBI
4410 vd __builtin_vec_unpackl (vf);
4411 DOUBLEL_V4SF VUPKLF
4412
4413[VEC_UNSIGNED, vec_unsigned, __builtin_vec_vunsigned]
4414 vui __builtin_vec_vunsigned (vf);
4415 VEC_VUNSIGNED_V4SF
4416 vull __builtin_vec_vunsigned (vd);
4417 VEC_VUNSIGNED_V2DF
4418
4419[VEC_UNSIGNED2, vec_unsigned2, __builtin_vec_vunsigned2]
4420 vui __builtin_vec_vunsigned2 (vd, vd);
4421 VEC_VUNSIGNED2_V2DF
4422
4423[VEC_UNSIGNEDE, vec_unsignede, __builtin_vec_vunsignede]
4424 vui __builtin_vec_vunsignede (vd);
4425 VEC_VUNSIGNEDE_V2DF
4426
4427[VEC_UNSIGNEDO, vec_unsignedo, __builtin_vec_vunsignedo]
4428 vui __builtin_vec_vunsignedo (vd);
4429 VEC_VUNSIGNEDO_V2DF
4430
7e836079 4431[VEC_VEE, vec_extract_exp, __builtin_vec_extract_exp]
e2693a72
BS
4432 vui __builtin_vec_extract_exp (vf);
4433 VEESP
4434 vull __builtin_vec_extract_exp (vd);
4435 VEEDP
4436
7e836079 4437[VEC_VES, vec_extract_sig, __builtin_vec_extract_sig]
e2693a72
BS
4438 vui __builtin_vec_extract_sig (vf);
4439 VESSP
4440 vull __builtin_vec_extract_sig (vd);
4441 VESDP
4442
7e836079 4443[VEC_VIE, vec_insert_exp, __builtin_vec_insert_exp]
e2693a72
BS
4444 vf __builtin_vec_insert_exp (vf, vui);
4445 VIESP VIESP_VF
4446 vf __builtin_vec_insert_exp (vui, vui);
4447 VIESP VIESP_VUI
4448 vd __builtin_vec_insert_exp (vd, vull);
4449 VIEDP VIEDP_VD
4450 vd __builtin_vec_insert_exp (vull, vull);
4451 VIEDP VIEDP_VULL
4452
4453; It is truly unfortunate that vec_vprtyb has an incompatible set of
4454; interfaces with vec_parity_lsbb. So we can't even deprecate this.
7e836079 4455[VEC_VPRTYB, vec_vprtyb, __builtin_vec_vprtyb]
e2693a72
BS
4456 vsi __builtin_vec_vprtyb (vsi);
4457 VPRTYBW VPRTYB_VSI
4458 vui __builtin_vec_vprtyb (vui);
4459 VPRTYBW VPRTYB_VUI
4460 vsll __builtin_vec_vprtyb (vsll);
4461 VPRTYBD VPRTYB_VSLL
4462 vull __builtin_vec_vprtyb (vull);
4463 VPRTYBD VPRTYB_VULL
4464 vsq __builtin_vec_vprtyb (vsq);
4465 VPRTYBQ VPRTYB_VSQ
4466 vuq __builtin_vec_vprtyb (vuq);
4467 VPRTYBQ VPRTYB_VUQ
4468 signed __int128 __builtin_vec_vprtyb (signed __int128);
4469 VPRTYBQ VPRTYB_SQ
4470 unsigned __int128 __builtin_vec_vprtyb (unsigned __int128);
4471 VPRTYBQ VPRTYB_UQ
4472
7e836079 4473[VEC_VSCEEQ, scalar_cmp_exp_eq, __builtin_vec_scalar_cmp_exp_eq]
e2693a72
BS
4474 signed int __builtin_vec_scalar_cmp_exp_eq (double, double);
4475 VSCEDPEQ
4476 signed int __builtin_vec_scalar_cmp_exp_eq (_Float128, _Float128);
ebfe2f40
MM
4477 VSCEQPEQ_KF
4478 signed int __builtin_vec_scalar_cmp_exp_eq (long double, long double);
4479 VSCEQPEQ_TF
e2693a72 4480
7e836079 4481[VEC_VSCEGT, scalar_cmp_exp_gt, __builtin_vec_scalar_cmp_exp_gt]
e2693a72
BS
4482 signed int __builtin_vec_scalar_cmp_exp_gt (double, double);
4483 VSCEDPGT
4484 signed int __builtin_vec_scalar_cmp_exp_gt (_Float128, _Float128);
ebfe2f40
MM
4485 VSCEQPGT_KF
4486 signed int __builtin_vec_scalar_cmp_exp_gt (long double, long double);
4487 VSCEQPGT_TF
e2693a72 4488
7e836079 4489[VEC_VSCELT, scalar_cmp_exp_lt, __builtin_vec_scalar_cmp_exp_lt]
e2693a72
BS
4490 signed int __builtin_vec_scalar_cmp_exp_lt (double, double);
4491 VSCEDPLT
4492 signed int __builtin_vec_scalar_cmp_exp_lt (_Float128, _Float128);
ebfe2f40
MM
4493 VSCEQPLT_KF
4494 signed int __builtin_vec_scalar_cmp_exp_lt (long double, long double);
4495 VSCEQPLT_TF
e2693a72 4496
7e836079 4497[VEC_VSCEUO, scalar_cmp_exp_unordered, __builtin_vec_scalar_cmp_exp_unordered]
e2693a72
BS
4498 signed int __builtin_vec_scalar_cmp_exp_unordered (double, double);
4499 VSCEDPUO
4500 signed int __builtin_vec_scalar_cmp_exp_unordered (_Float128, _Float128);
ebfe2f40
MM
4501 VSCEQPUO_KF
4502 signed int __builtin_vec_scalar_cmp_exp_unordered (long double, long double);
4503 VSCEQPUO_TF
e2693a72 4504
7e836079 4505[VEC_VSEE, scalar_extract_exp, __builtin_vec_scalar_extract_exp]
e2693a72
BS
4506 unsigned int __builtin_vec_scalar_extract_exp (double);
4507 VSEEDP
4508 unsigned int __builtin_vec_scalar_extract_exp (_Float128);
229d10e5
MM
4509 VSEEQP_KF
4510 unsigned int __builtin_vec_scalar_extract_exp (long double);
4511 VSEEQP_TF
e2693a72 4512
7e836079 4513[VEC_VSES, scalar_extract_sig, __builtin_vec_scalar_extract_sig]
e2693a72
BS
4514 unsigned long long __builtin_vec_scalar_extract_sig (double);
4515 VSESDP
4516 unsigned __int128 __builtin_vec_scalar_extract_sig (_Float128);
229d10e5
MM
4517 VSESQP_KF
4518 unsigned __int128 __builtin_vec_scalar_extract_sig (long double);
4519 VSESQP_TF
e2693a72 4520
7e836079 4521[VEC_VSIE, scalar_insert_exp, __builtin_vec_scalar_insert_exp]
e2693a72
BS
4522 double __builtin_vec_scalar_insert_exp (unsigned long long, unsigned long long);
4523 VSIEDP
4524 double __builtin_vec_scalar_insert_exp (double, unsigned long long);
4525 VSIEDPF
4526 _Float128 __builtin_vec_scalar_insert_exp (unsigned __int128, unsigned long long);
4527 VSIEQP
4528 _Float128 __builtin_vec_scalar_insert_exp (_Float128, unsigned long long);
229d10e5
MM
4529 VSIEQPF_KF
4530 long double __builtin_vec_scalar_insert_exp (long double, unsigned long long);
4531 VSIEQPF_TF
e2693a72 4532
7e836079 4533[VEC_VSTDC, scalar_test_data_class, __builtin_vec_scalar_test_data_class]
e2693a72
BS
4534 unsigned int __builtin_vec_scalar_test_data_class (float, const int);
4535 VSTDCSP
4536 unsigned int __builtin_vec_scalar_test_data_class (double, const int);
4537 VSTDCDP
4538 unsigned int __builtin_vec_scalar_test_data_class (_Float128, const int);
4539 VSTDCQP
4540
7e836079 4541[VEC_VSTDCN, scalar_test_neg, __builtin_vec_scalar_test_neg]
e2693a72
BS
4542 unsigned int __builtin_vec_scalar_test_neg (float);
4543 VSTDCNSP
4544 unsigned int __builtin_vec_scalar_test_neg (double);
4545 VSTDCNDP
4546 unsigned int __builtin_vec_scalar_test_neg (_Float128);
4547 VSTDCNQP
4548
7e836079 4549[VEC_VTDC, vec_test_data_class, __builtin_vec_test_data_class]
e2693a72
BS
4550 vbi __builtin_vec_test_data_class (vf, const int);
4551 VTDCSP
4552 vbll __builtin_vec_test_data_class (vd, const int);
4553 VTDCDP
4554
7e836079 4555[VEC_XL, vec_xl, __builtin_vec_vsx_ld]
e2693a72
BS
4556 vsc __builtin_vec_vsx_ld (signed long long, const vsc *);
4557 LXVW4X_V16QI LXVW4X_VSC
4558 vsc __builtin_vec_vsx_ld (signed long long, const signed char *);
4559 LXVW4X_V16QI LXVW4X_SC
4560 vuc __builtin_vec_vsx_ld (signed long long, const vuc *);
4561 LXVW4X_V16QI LXVW4X_VUC
4562 vuc __builtin_vec_vsx_ld (signed long long, const unsigned char *);
4563 LXVW4X_V16QI LXVW4X_UC
4564 vbc __builtin_vec_vsx_ld (signed long long, const vbc *);
4565 LXVW4X_V16QI LXVW4X_VBC
4566 vss __builtin_vec_vsx_ld (signed long long, const vss *);
4567 LXVW4X_V8HI LXVW4X_VSS
4568 vss __builtin_vec_vsx_ld (signed long long, const signed short *);
4569 LXVW4X_V8HI LXVW4X_SS
4570 vus __builtin_vec_vsx_ld (signed long long, const vus *);
4571 LXVW4X_V8HI LXVW4X_VUS
4572 vus __builtin_vec_vsx_ld (signed long long, const unsigned short *);
4573 LXVW4X_V8HI LXVW4X_US
4574 vbs __builtin_vec_vsx_ld (signed long long, const vbs *);
4575 LXVW4X_V8HI LXVW4X_VBS
4576 vp __builtin_vec_vsx_ld (signed long long, const vp *);
4577 LXVW4X_V8HI LXVW4X_P
4578 vsi __builtin_vec_vsx_ld (signed long long, const vsi *);
4579 LXVW4X_V4SI LXVW4X_VSI
4580 vsi __builtin_vec_vsx_ld (signed long long, const signed int *);
4581 LXVW4X_V4SI LXVW4X_SI
4582 vui __builtin_vec_vsx_ld (signed long long, const vui *);
4583 LXVW4X_V4SI LXVW4X_VUI
4584 vui __builtin_vec_vsx_ld (signed long long, const unsigned int *);
4585 LXVW4X_V4SI LXVW4X_UI
4586 vbi __builtin_vec_vsx_ld (signed long long, const vbi *);
4587 LXVW4X_V4SI LXVW4X_VBI
4588 vsll __builtin_vec_vsx_ld (signed long long, const vsll *);
4589 LXVD2X_V2DI LXVD2X_VSLL
4590 vsll __builtin_vec_vsx_ld (signed long long, const signed long long *);
4591 LXVD2X_V2DI LXVD2X_SLL
4592 vull __builtin_vec_vsx_ld (signed long long, const vull *);
4593 LXVD2X_V2DI LXVD2X_VULL
4594 vull __builtin_vec_vsx_ld (signed long long, const unsigned long long *);
4595 LXVD2X_V2DI LXVD2X_ULL
4596 vbll __builtin_vec_vsx_ld (signed long long, const vbll *);
4597 LXVD2X_V2DI LXVD2X_VBLL
4598 vsq __builtin_vec_vsx_ld (signed long long, const vsq *);
4599 LXVD2X_V1TI LXVD2X_VSQ
4600 vsq __builtin_vec_vsx_ld (signed long long, const signed __int128 *);
4601 LXVD2X_V1TI LXVD2X_SQ
4602 vuq __builtin_vec_vsx_ld (signed long long, const unsigned __int128 *);
4603 LXVD2X_V1TI LXVD2X_UQ
4604 vf __builtin_vec_vsx_ld (signed long long, const vf *);
4605 LXVW4X_V4SF LXVW4X_VF
4606 vf __builtin_vec_vsx_ld (signed long long, const float *);
4607 LXVW4X_V4SF LXVW4X_F
4608 vd __builtin_vec_vsx_ld (signed long long, const vd *);
4609 LXVD2X_V2DF LXVD2X_VD
4610 vd __builtin_vec_vsx_ld (signed long long, const double *);
4611 LXVD2X_V2DF LXVD2X_D
4612
7e836079 4613[VEC_XL_BE, vec_xl_be, __builtin_vec_xl_be]
e2693a72
BS
4614 vsc __builtin_vec_xl_be (signed long long, const vsc *);
4615 LD_ELEMREV_V16QI LD_ELEMREV_VSC
4616 vsc __builtin_vec_xl_be (signed long long, const signed char *);
4617 LD_ELEMREV_V16QI LD_ELEMREV_SC
4618 vuc __builtin_vec_xl_be (signed long long, const vuc *);
4619 LD_ELEMREV_V16QI LD_ELEMREV_VUC
4620 vuc __builtin_vec_xl_be (signed long long, const unsigned char *);
4621 LD_ELEMREV_V16QI LD_ELEMREV_UC
4622 vss __builtin_vec_xl_be (signed long long, const vss *);
4623 LD_ELEMREV_V8HI LD_ELEMREV_VSS
4624 vss __builtin_vec_xl_be (signed long long, const signed short *);
4625 LD_ELEMREV_V8HI LD_ELEMREV_SS
4626 vus __builtin_vec_xl_be (signed long long, const vus *);
4627 LD_ELEMREV_V8HI LD_ELEMREV_VUS
4628 vus __builtin_vec_xl_be (signed long long, const unsigned short *);
4629 LD_ELEMREV_V8HI LD_ELEMREV_US
4630 vsi __builtin_vec_xl_be (signed long long, const vsi *);
4631 LD_ELEMREV_V4SI LD_ELEMREV_VSI
4632 vsi __builtin_vec_xl_be (signed long long, const signed int *);
4633 LD_ELEMREV_V4SI LD_ELEMREV_SI
4634 vui __builtin_vec_xl_be (signed long long, const vui *);
4635 LD_ELEMREV_V4SI LD_ELEMREV_VUI
4636 vui __builtin_vec_xl_be (signed long long, const unsigned int *);
4637 LD_ELEMREV_V4SI LD_ELEMREV_UI
4638 vsll __builtin_vec_xl_be (signed long long, const vsll *);
4639 LD_ELEMREV_V2DI LD_ELEMREV_VSLL
4640 vsll __builtin_vec_xl_be (signed long long, const signed long long *);
4641 LD_ELEMREV_V2DI LD_ELEMREV_SLL
4642 vull __builtin_vec_xl_be (signed long long, const vull *);
4643 LD_ELEMREV_V2DI LD_ELEMREV_VULL
4644 vull __builtin_vec_xl_be (signed long long, const unsigned long long *);
4645 LD_ELEMREV_V2DI LD_ELEMREV_ULL
4646 vsq __builtin_vec_xl_be (signed long long, const signed __int128 *);
4647 LD_ELEMREV_V1TI LD_ELEMREV_SQ
4648 vuq __builtin_vec_xl_be (signed long long, const unsigned __int128 *);
4649 LD_ELEMREV_V1TI LD_ELEMREV_UQ
4650 vf __builtin_vec_xl_be (signed long long, const vf *);
4651 LD_ELEMREV_V4SF LD_ELEMREV_VF
4652 vf __builtin_vec_xl_be (signed long long, const float *);
4653 LD_ELEMREV_V4SF LD_ELEMREV_F
4654 vd __builtin_vec_xl_be (signed long long, const vd *);
4655 LD_ELEMREV_V2DF LD_ELEMREV_VD
4656 vd __builtin_vec_xl_be (signed long long, const double *);
4657 LD_ELEMREV_V2DF LD_ELEMREV_DD
4658
7e836079 4659[VEC_XL_LEN_R, vec_xl_len_r, __builtin_vec_xl_len_r]
e2693a72
BS
4660 vuc __builtin_vsx_xl_len_r (const unsigned char *, unsigned int);
4661 XL_LEN_R
4662
7e836079 4663[VEC_XL_SEXT, vec_xl_sext, __builtin_vec_xl_sext]
e2693a72
BS
4664 vsq __builtin_vec_xl_sext (signed long long, const signed char *);
4665 SE_LXVRBX
4666 vsq __builtin_vec_xl_sext (signed long long, const signed short *);
4667 SE_LXVRHX
4668 vsq __builtin_vec_xl_sext (signed long long, const signed int *);
4669 SE_LXVRWX
4670 vsq __builtin_vec_xl_sext (signed long long, const signed long long *);
4671 SE_LXVRDX
4672
7e836079 4673[VEC_XL_ZEXT, vec_xl_zext, __builtin_vec_xl_zext]
e2693a72
BS
4674 vuq __builtin_vec_xl_zext (signed long long, const unsigned char *);
4675 ZE_LXVRBX
4676 vuq __builtin_vec_xl_zext (signed long long, const unsigned short *);
4677 ZE_LXVRHX
4678 vuq __builtin_vec_xl_zext (signed long long, const unsigned int *);
4679 ZE_LXVRWX
4680 vuq __builtin_vec_xl_zext (signed long long, const unsigned long long *);
4681 ZE_LXVRDX
4682
4683[VEC_XOR, vec_xor, __builtin_vec_xor]
4684 vsc __builtin_vec_xor (vsc, vsc);
4685 VXOR_V16QI
4686 vuc __builtin_vec_xor (vuc, vuc);
4687 VXOR_V16QI_UNS VXOR_VUC
4688 vbc __builtin_vec_xor (vbc, vbc);
4689 VXOR_V16QI_UNS VXOR_VBC
4690 vss __builtin_vec_xor (vss, vss);
4691 VXOR_V8HI
4692 vus __builtin_vec_xor (vus, vus);
4693 VXOR_V8HI_UNS VXOR_VUS
4694 vbs __builtin_vec_xor (vbs, vbs);
4695 VXOR_V8HI_UNS VXOR_VBS
4696 vsi __builtin_vec_xor (vsi, vsi);
4697 VXOR_V4SI
4698 vui __builtin_vec_xor (vui, vui);
4699 VXOR_V4SI_UNS VXOR_VUI
4700 vbi __builtin_vec_xor (vbi, vbi);
4701 VXOR_V4SI_UNS VXOR_VBI
4702 vsll __builtin_vec_xor (vsll, vsll);
4703 VXOR_V2DI
4704 vull __builtin_vec_xor (vull, vull);
4705 VXOR_V2DI_UNS VXOR_VULL
4706 vbll __builtin_vec_xor (vbll, vbll);
4707 VXOR_V2DI_UNS VXOR_VBLL
4708 vf __builtin_vec_xor (vf, vf);
4709 VXOR_V4SF
4710 vd __builtin_vec_xor (vd, vd);
4711 VXOR_V2DF
4712; The following variants are deprecated.
4713 vsc __builtin_vec_xor (vsc, vbc);
4714 VXOR_V16QI VXOR_VSC_VBC
4715 vsc __builtin_vec_xor (vbc, vsc);
4716 VXOR_V16QI VXOR_VBC_VSC
4717 vsc __builtin_vec_xor (vsc, vuc);
4718 VXOR_V16QI VXOR_VSC_VUC
4719 vuc __builtin_vec_xor (vuc, vbc);
4720 VXOR_V16QI_UNS VXOR_VUC_VBC
4721 vuc __builtin_vec_xor (vbc, vuc);
4722 VXOR_V16QI_UNS VXOR_VBC_VUC
4723 vuc __builtin_vec_xor (vuc, vsc);
4724 VXOR_V16QI_UNS VXOR_VUC_VSC
4725 vss __builtin_vec_xor (vss, vbs);
4726 VXOR_V8HI VXOR_VSS_VBS
4727 vss __builtin_vec_xor (vbs, vss);
4728 VXOR_V8HI VXOR_VBS_VSS
4729 vus __builtin_vec_xor (vus, vbs);
4730 VXOR_V8HI_UNS VXOR_VUS_VBS
4731 vus __builtin_vec_xor (vbs, vus);
4732 VXOR_V8HI_UNS VXOR_VBS_VUS
4733 vsi __builtin_vec_xor (vsi, vbi);
4734 VXOR_V4SI VXOR_VSI_VBI
4735 vsi __builtin_vec_xor (vbi, vsi);
4736 VXOR_V4SI VXOR_VBI_VSI
4737 vui __builtin_vec_xor (vui, vbi);
4738 VXOR_V4SI_UNS VXOR_VUI_VBI
4739 vui __builtin_vec_xor (vbi, vui);
4740 VXOR_V4SI_UNS VXOR_VBI_VUI
4741 vsll __builtin_vec_xor (vsll, vbll);
4742 VXOR_V2DI VXOR_VSLL_VBLL
4743 vsll __builtin_vec_xor (vbll, vsll);
4744 VXOR_V2DI VXOR_VBLL_VSLL
4745 vull __builtin_vec_xor (vull, vbll);
4746 VXOR_V2DI_UNS VXOR_VULL_VBLL
4747 vull __builtin_vec_xor (vbll, vull);
4748 VXOR_V2DI_UNS VXOR_VBLL_VULL
4749 vf __builtin_vec_xor (vf, vbi);
4750 VXOR_V4SF VXOR_VF_VBI
4751 vf __builtin_vec_xor (vbi, vf);
4752 VXOR_V4SF VXOR_VBI_VF
4753 vd __builtin_vec_xor (vd, vbll);
4754 VXOR_V2DF VXOR_VD_VBLL
4755 vd __builtin_vec_xor (vbll, vd);
4756 VXOR_V2DF VXOR_VBLL_VD
4757
7e836079 4758[VEC_XST, vec_xst, __builtin_vec_vsx_st]
e2693a72
BS
4759 void __builtin_vec_vsx_st (vsc, signed long long, vsc *);
4760 STXVW4X_V16QI STXVW4X_VSC
4761 void __builtin_vec_vsx_st (vsc, signed long long, signed char *);
4762 STXVW4X_V16QI STXVW4X_SC
4763 void __builtin_vec_vsx_st (vuc, signed long long, vuc *);
4764 STXVW4X_V16QI STXVW4X_VUC
4765 void __builtin_vec_vsx_st (vuc, signed long long, unsigned char *);
4766 STXVW4X_V16QI STXVW4X_UC
4767 void __builtin_vec_vsx_st (vbc, signed long long, vbc *);
4768 STXVW4X_V16QI STXVW4X_VBC
4769 void __builtin_vec_vsx_st (vbc, signed long long, signed char *);
4770 STXVW4X_V16QI STXVW4X_VBC_S
4771 void __builtin_vec_vsx_st (vbc, signed long long, unsigned char *);
4772 STXVW4X_V16QI STXVW4X_VBC_U
4773 void __builtin_vec_vsx_st (vss, signed long long, vss *);
4774 STXVW4X_V8HI STXVW4X_VSS
4775 void __builtin_vec_vsx_st (vss, signed long long, signed short *);
4776 STXVW4X_V8HI STXVW4X_SS
4777 void __builtin_vec_vsx_st (vus, signed long long, vus *);
4778 STXVW4X_V8HI STXVW4X_VUS
4779 void __builtin_vec_vsx_st (vus, signed long long, unsigned short *);
4780 STXVW4X_V8HI STXVW4X_US
4781 void __builtin_vec_vsx_st (vbs, signed long long, vbs *);
4782 STXVW4X_V8HI STXVW4X_VBS
4783 void __builtin_vec_vsx_st (vbs, signed long long, signed short *);
4784 STXVW4X_V8HI STXVW4X_VBS_S
4785 void __builtin_vec_vsx_st (vbs, signed long long, unsigned short *);
4786 STXVW4X_V8HI STXVW4X_VBS_U
4787 void __builtin_vec_vsx_st (vp, signed long long, vp *);
4788 STXVW4X_V8HI STXVW4X_VP
4789 void __builtin_vec_vsx_st (vsi, signed long long, vsi *);
4790 STXVW4X_V4SI STXVW4X_VSI
4791 void __builtin_vec_vsx_st (vsi, signed long long, signed int *);
4792 STXVW4X_V4SI STXVW4X_SI
4793 void __builtin_vec_vsx_st (vui, signed long long, vui *);
4794 STXVW4X_V4SI STXVW4X_VUI
4795 void __builtin_vec_vsx_st (vui, signed long long, unsigned int *);
4796 STXVW4X_V4SI STXVW4X_UI
4797 void __builtin_vec_vsx_st (vbi, signed long long, vbi *);
4798 STXVW4X_V4SI STXVW4X_VBI
4799 void __builtin_vec_vsx_st (vbi, signed long long, signed int *);
4800 STXVW4X_V4SI STXVW4X_VBI_S
4801 void __builtin_vec_vsx_st (vbi, signed long long, unsigned int *);
4802 STXVW4X_V4SI STXVW4X_VBI_U
4803 void __builtin_vec_vsx_st (vsll, signed long long, vsll *);
4804 STXVD2X_V2DI STXVD2X_VSLL
4805 void __builtin_vec_vsx_st (vsll, signed long long, signed long long *);
4806 STXVD2X_V2DI STXVD2X_SLL
4807 void __builtin_vec_vsx_st (vull, signed long long, vull *);
4808 STXVD2X_V2DI STXVD2X_VULL
4809 void __builtin_vec_vsx_st (vull, signed long long, unsigned long long *);
4810 STXVD2X_V2DI STXVD2X_ULL
4811 void __builtin_vec_vsx_st (vbll, signed long long, vbll *);
4812 STXVD2X_V2DI STXVD2X_VBLL
4813 void __builtin_vec_vsx_st (vsq, signed long long, signed __int128 *);
4814 STXVD2X_V1TI STXVD2X_SQ
4815 void __builtin_vec_vsx_st (vuq, signed long long, unsigned __int128 *);
4816 STXVD2X_V1TI STXVD2X_UQ
4817 void __builtin_vec_vsx_st (vf, signed long long, vf *);
4818 STXVW4X_V4SF STXVW4X_VF
4819 void __builtin_vec_vsx_st (vf, signed long long, float *);
4820 STXVW4X_V4SF STXVW4X_F
4821 void __builtin_vec_vsx_st (vd, signed long long, vd *);
4822 STXVD2X_V2DF STXVD2X_VD
4823 void __builtin_vec_vsx_st (vd, signed long long, double *);
4824 STXVD2X_V2DF STXVD2X_D
4825
7e836079 4826[VEC_XST_BE, vec_xst_be, __builtin_vec_xst_be]
e2693a72
BS
4827 void __builtin_vec_xst_be (vsc, signed long long, vsc *);
4828 ST_ELEMREV_V16QI ST_ELEMREV_VSC
4829 void __builtin_vec_xst_be (vsc, signed long long, signed char *);
4830 ST_ELEMREV_V16QI ST_ELEMREV_SC_
4831 void __builtin_vec_xst_be (vuc, signed long long, vuc *);
4832 ST_ELEMREV_V16QI ST_ELEMREV_VUC
4833 void __builtin_vec_xst_be (vuc, signed long long, unsigned char *);
4834 ST_ELEMREV_V16QI ST_ELEMREV_UC
4835 void __builtin_vec_xst_be (vss, signed long long, vss *);
4836 ST_ELEMREV_V8HI ST_ELEMREV_VSS
4837 void __builtin_vec_xst_be (vss, signed long long, signed short *);
4838 ST_ELEMREV_V8HI ST_ELEMREV_SS
4839 void __builtin_vec_xst_be (vus, signed long long, vus *);
4840 ST_ELEMREV_V8HI ST_ELEMREV_VUS
4841 void __builtin_vec_xst_be (vus, signed long long, unsigned short *);
4842 ST_ELEMREV_V8HI ST_ELEMREV_US
4843 void __builtin_vec_xst_be (vsi, signed long long, vsi *);
4844 ST_ELEMREV_V4SI ST_ELEMREV_VSI
4845 void __builtin_vec_xst_be (vsi, signed long long, signed int *);
4846 ST_ELEMREV_V4SI ST_ELEMREV_SI
4847 void __builtin_vec_xst_be (vui, signed long long, vui *);
4848 ST_ELEMREV_V4SI ST_ELEMREV_VUI
4849 void __builtin_vec_xst_be (vui, signed long long, unsigned int *);
4850 ST_ELEMREV_V4SI ST_ELEMREV_UI
4851 void __builtin_vec_xst_be (vsll, signed long long, vsll *);
4852 ST_ELEMREV_V2DI ST_ELEMREV_VSLL
4853 void __builtin_vec_xst_be (vsll, signed long long, signed long long *);
4854 ST_ELEMREV_V2DI ST_ELEMREV_SLL
4855 void __builtin_vec_xst_be (vull, signed long long, vull *);
4856 ST_ELEMREV_V2DI ST_ELEMREV_VULL
4857 void __builtin_vec_xst_be (vull, signed long long, unsigned long long *);
4858 ST_ELEMREV_V2DI ST_ELEMREV_ULL
4859 void __builtin_vec_xst_be (vsq, signed long long, signed __int128 *);
4860 ST_ELEMREV_V1TI ST_ELEMREV_SQ
4861 void __builtin_vec_xst_be (vuq, signed long long, unsigned __int128 *);
4862 ST_ELEMREV_V1TI ST_ELEMREV_UQ
4863 void __builtin_vec_xst_be (vf, signed long long, vf *);
4864 ST_ELEMREV_V4SF ST_ELEMREV_VF
4865 void __builtin_vec_xst_be (vf, signed long long, float *);
4866 ST_ELEMREV_V4SF ST_ELEMREV_F
4867 void __builtin_vec_xst_be (vd, signed long long, vd *);
4868 ST_ELEMREV_V2DF ST_ELEMREV_VD
4869 void __builtin_vec_xst_be (vd, signed long long, double *);
4870 ST_ELEMREV_V2DF ST_ELEMREV_D
4871
7e836079 4872[VEC_XST_LEN_R, vec_xst_len_r, __builtin_vec_xst_len_r]
e2693a72
BS
4873 void __builtin_vsx_xst_len_r (vuc, unsigned char *, unsigned int);
4874 XST_LEN_R
4875
7e836079 4876[VEC_XST_TRUNC, vec_xst_trunc, __builtin_vec_xst_trunc]
e2693a72
BS
4877 void __builtin_vec_xst_trunc (vsq, signed long long, signed char *);
4878 TR_STXVRBX TR_STXVRBX_S
4879 void __builtin_vec_xst_trunc (vuq, signed long long, unsigned char *);
4880 TR_STXVRBX TR_STXVRBX_U
4881 void __builtin_vec_xst_trunc (vsq, signed long long, signed short *);
4882 TR_STXVRHX TR_STXVRHX_S
4883 void __builtin_vec_xst_trunc (vuq, signed long long, unsigned short *);
4884 TR_STXVRHX TR_STXVRHX_U
4885 void __builtin_vec_xst_trunc (vsq, signed long long, signed int *);
4886 TR_STXVRWX TR_STXVRWX_S
4887 void __builtin_vec_xst_trunc (vuq, signed long long, unsigned int *);
4888 TR_STXVRWX TR_STXVRWX_U
4889 void __builtin_vec_xst_trunc (vsq, signed long long, signed long long *);
4890 TR_STXVRDX TR_STXVRDX_S
4891 void __builtin_vec_xst_trunc (vuq, signed long long, unsigned long long *);
4892 TR_STXVRDX TR_STXVRDX_U
4893
7e836079 4894[VEC_XXPERMDI, vec_xxpermdi, __builtin_vsx_xxpermdi]
e2693a72
BS
4895 vsc __builtin_vsx_xxpermdi (vsc, vsc, const int);
4896 XXPERMDI_16QI XXPERMDI_VSC
4897 vuc __builtin_vsx_xxpermdi (vuc, vuc, const int);
4898 XXPERMDI_16QI XXPERMDI_VUC
4899 vss __builtin_vsx_xxpermdi (vss, vss, const int);
4900 XXPERMDI_8HI XXPERMDI_VSS
4901 vus __builtin_vsx_xxpermdi (vus, vus, const int);
4902 XXPERMDI_8HI XXPERMDI_VUS
4903 vsi __builtin_vsx_xxpermdi (vsi, vsi, const int);
4904 XXPERMDI_4SI XXPERMDI_VSI
4905 vui __builtin_vsx_xxpermdi (vui, vui, const int);
4906 XXPERMDI_4SI XXPERMDI_VUI
4907 vsll __builtin_vsx_xxpermdi (vsll, vsll, const int);
4908 XXPERMDI_2DI XXPERMDI_VSLL
4909 vull __builtin_vsx_xxpermdi (vull, vull, const int);
4910 XXPERMDI_2DI XXPERMDI_VULL
4911 vf __builtin_vsx_xxpermdi (vf, vf, const int);
4912 XXPERMDI_4SF XXPERMDI_VF
4913 vd __builtin_vsx_xxpermdi (vd, vd, const int);
4914 XXPERMDI_2DF XXPERMDI_VD
4915
7e836079 4916[VEC_XXSLDWI, vec_xxsldwi, __builtin_vsx_xxsldwi]
e2693a72
BS
4917 vsc __builtin_vsx_xxsldwi (vsc, vsc, const int);
4918 XXSLDWI_16QI XXSLDWI_VSC2
4919 vuc __builtin_vsx_xxsldwi (vuc, vuc, const int);
4920 XXSLDWI_16QI XXSLDWI_VUC2
4921 vss __builtin_vsx_xxsldwi (vss, vss, const int);
4922 XXSLDWI_8HI XXSLDWI_VSS2
4923 vus __builtin_vsx_xxsldwi (vus, vus, const int);
4924 XXSLDWI_8HI XXSLDWI_VUS2
4925 vsi __builtin_vsx_xxsldwi (vsi, vsi, const int);
4926 XXSLDWI_4SI XXSLDWI_VSI2
4927 vui __builtin_vsx_xxsldwi (vui, vui, const int);
4928 XXSLDWI_4SI XXSLDWI_VUI2
4929 vsll __builtin_vsx_xxsldwi (vsll, vsll, const int);
4930 XXSLDWI_2DI XXSLDWI_VSLL2
4931 vull __builtin_vsx_xxsldwi (vull, vull, const int);
4932 XXSLDWI_2DI XXSLDWI_VULL2
4933 vf __builtin_vsx_xxsldwi (vf, vf, const int);
4934 XXSLDWI_4SF XXSLDWI_VF2
4935 vd __builtin_vsx_xxsldwi (vd, vd, const int);
4936 XXSLDWI_2DF XXSLDWI_VD2
4937
4938
4939; **************************************************************************
4940; **************************************************************************
4941; **** Deprecated overloads that should never have existed at all ****
4942; **************************************************************************
4943; **************************************************************************
4944
4945[VEC_LVEBX, vec_lvebx, __builtin_vec_lvebx]
4946 vsc __builtin_vec_lvebx (signed long, signed char *);
4947 LVEBX LVEBX_DEPR1
4948 vuc __builtin_vec_lvebx (signed long, unsigned char *);
4949 LVEBX LVEBX_DEPR2
4950
4951[VEC_LVEHX, vec_lvehx, __builtin_vec_lvehx]
4952 vss __builtin_vec_lvehx (signed long, signed short *);
4953 LVEHX LVEHX_DEPR1
4954 vus __builtin_vec_lvehx (signed long, unsigned short *);
4955 LVEHX LVEHX_DEPR2
4956
4957[VEC_LVEWX, vec_lvewx, __builtin_vec_lvewx]
4958 vf __builtin_vec_lvewx (signed long, float *);
4959 LVEWX LVEWX_DEPR1
4960 vsi __builtin_vec_lvewx (signed long, signed int *);
4961 LVEWX LVEWX_DEPR2
4962 vui __builtin_vec_lvewx (signed long, unsigned int *);
4963 LVEWX LVEWX_DEPR3
4964 vsi __builtin_vec_lvewx (signed long, signed long *);
4965 LVEWX LVEWX_DEPR4
4966 vui __builtin_vec_lvewx (signed long, unsigned long *);
4967 LVEWX LVEWX_DEPR5
4968
4969[VEC_STVEBX, vec_stvebx, __builtin_vec_stvebx]
4970 void __builtin_vec_stvebx (vsc, signed long, signed char *);
4971 STVEBX STVEBX_DEPR1
4972 void __builtin_vec_stvebx (vuc, signed long, unsigned char *);
4973 STVEBX STVEBX_DEPR2
4974 void __builtin_vec_stvebx (vbc, signed long, signed char *);
4975 STVEBX STVEBX_DEPR3
4976 void __builtin_vec_stvebx (vbc, signed long, signed char *);
4977 STVEBX STVEBX_DEPR4
4978 void __builtin_vec_stvebx (vsc, signed long, void *);
4979 STVEBX STVEBX_DEPR5
4980 void __builtin_vec_stvebx (vuc, signed long, void *);
4981 STVEBX STVEBX_DEPR6
4982
4983[VEC_STVEHX, vec_stvehx, __builtin_vec_stvehx]
4984 void __builtin_vec_stvehx (vss, signed long, signed short *);
4985 STVEHX STVEHX_DEPR1
4986 void __builtin_vec_stvehx (vus, signed long, unsigned short *);
4987 STVEHX STVEHX_DEPR2
4988 void __builtin_vec_stvehx (vbs, signed long, signed short *);
4989 STVEHX STVEHX_DEPR3
4990 void __builtin_vec_stvehx (vbs, signed long, signed short *);
4991 STVEHX STVEHX_DEPR4
4992 void __builtin_vec_stvehx (vss, signed long, void *);
4993 STVEHX STVEHX_DEPR5
4994 void __builtin_vec_stvehx (vus, signed long, void *);
4995 STVEHX STVEHX_DEPR6
4996
4997[VEC_STVEWX, vec_stvewx, __builtin_vec_stvewx]
4998 void __builtin_vec_stvewx (vf, signed long, float *);
4999 STVEWX STVEWX_DEPR1
5000 void __builtin_vec_stvewx (vsi, signed long, signed int *);
5001 STVEWX STVEWX_DEPR2
5002 void __builtin_vec_stvewx (vui, signed long, unsigned int *);
5003 STVEWX STVEWX_DEPR3
5004 void __builtin_vec_stvewx (vbi, signed long, signed int *);
5005 STVEWX STVEWX_DEPR4
5006 void __builtin_vec_stvewx (vbi, signed long, unsigned int *);
5007 STVEWX STVEWX_DEPR5
5008 void __builtin_vec_stvewx (vf, signed long, void *);
5009 STVEWX STVEWX_DEPR6
5010 void __builtin_vec_stvewx (vsi, signed long, void *);
5011 STVEWX STVEWX_DEPR7
5012 void __builtin_vec_stvewx (vui, signed long, void *);
5013 STVEWX STVEWX_DEPR8
5014
7e836079 5015[VEC_TSTSFI_EQ_DD, SKIP, __builtin_dfp_dtstsfi_eq_dd]
e2693a72
BS
5016 signed int __builtin_dfp_dtstsfi_eq_dd (const int, _Decimal64);
5017 TSTSFI_EQ_DD TSTSFI_EQ_DD_DEPR1
5018
7e836079 5019[VEC_TSTSFI_EQ_TD, SKIP, __builtin_dfp_dtstsfi_eq_td]
e2693a72
BS
5020 signed int __builtin_dfp_dtstsfi_eq_td (const int, _Decimal128);
5021 TSTSFI_EQ_TD TSTSFI_EQ_TD_DEPR1
5022
7e836079 5023[VEC_TSTSFI_GT_DD, SKIP, __builtin_dfp_dtstsfi_gt_dd]
e2693a72
BS
5024 signed int __builtin_dfp_dtstsfi_gt_dd (const int, _Decimal64);
5025 TSTSFI_GT_DD TSTSFI_GT_DD_DEPR1
5026
7e836079 5027[VEC_TSTSFI_GT_TD, SKIP, __builtin_dfp_dtstsfi_gt_td]
e2693a72
BS
5028 signed int __builtin_dfp_dtstsfi_gt_td (const int, _Decimal128);
5029 TSTSFI_GT_TD TSTSFI_GT_TD_DEPR1
5030
7e836079 5031[VEC_TSTSFI_LT_DD, SKIP, __builtin_dfp_dtstsfi_lt_dd]
e2693a72
BS
5032 signed int __builtin_dfp_dtstsfi_lt_dd (const int, _Decimal64);
5033 TSTSFI_LT_DD TSTSFI_LT_DD_DEPR1
5034
7e836079 5035[VEC_TSTSFI_LT_TD, SKIP, __builtin_dfp_dtstsfi_lt_td]
e2693a72
BS
5036 signed int __builtin_dfp_dtstsfi_lt_td (const int, _Decimal128);
5037 TSTSFI_LT_TD TSTSFI_LT_TD_DEPR1
5038
7e836079 5039[VEC_TSTSFI_OV_DD, SKIP, __builtin_dfp_dtstsfi_ov_dd]
e2693a72
BS
5040 signed int __builtin_dfp_dtstsfi_ov_dd (const int, _Decimal64);
5041 TSTSFI_OV_DD TSTSFI_OV_DD_DEPR1
5042
7e836079 5043[VEC_TSTSFI_OV_TD, SKIP, __builtin_dfp_dtstsfi_ov_td]
e2693a72
BS
5044 signed int __builtin_dfp_dtstsfi_ov_td (const int, _Decimal128);
5045 TSTSFI_OV_TD TSTSFI_OV_TD_DEPR1
5046
7e836079 5047[VEC_VADDCUQ, vec_vaddcuq, __builtin_vec_vaddcuq]
e2693a72
BS
5048 vsq __builtin_vec_vaddcuq (vsq, vsq);
5049 VADDCUQ VADDCUQ_DEPR1
5050 vuq __builtin_vec_vaddcuq (vuq, vuq);
5051 VADDCUQ VADDCUQ_DEPR2
5052
7e836079 5053[VEC_VADDECUQ, vec_vaddecuq, __builtin_vec_vaddecuq]
e2693a72
BS
5054 vsq __builtin_vec_vaddecuq (vsq, vsq, vsq);
5055 VADDECUQ VADDECUQ_DEPR1
5056 vuq __builtin_vec_vaddecuq (vuq, vuq, vuq);
5057 VADDECUQ VADDECUQ_DEPR2
5058
7e836079 5059[VEC_VADDEUQM, vec_vaddeuqm, __builtin_vec_vaddeuqm]
e2693a72
BS
5060 vsq __builtin_vec_vaddeuqm (vsq, vsq, vsq);
5061 VADDEUQM VADDEUQM_DEPR1
5062 vuq __builtin_vec_vaddeuqm (vuq, vuq, vuq);
5063 VADDEUQM VADDEUQM_DEPR2
5064
5065[VEC_VADDFP, vec_vaddfp, __builtin_vec_vaddfp]
5066 vf __builtin_vec_vaddfp (vf, vf);
5067 VADDFP VADDFP_DEPR1
5068
5069[VEC_VADDSBS, vec_vaddsbs, __builtin_vec_vaddsbs]
5070 vsc __builtin_vec_vaddsbs (vsc, vsc);
5071 VADDSBS VADDSBS_DEPR1
5072 vsc __builtin_vec_vaddsbs (vbc, vsc);
5073 VADDSBS VADDSBS_DEPR2
5074 vsc __builtin_vec_vaddsbs (vsc, vbc);
5075 VADDSBS VADDSBS_DEPR3
5076
5077[VEC_VADDSHS, vec_vaddshs, __builtin_vec_vaddshs]
5078 vss __builtin_vec_vaddshs (vss, vss);
5079 VADDSHS VADDSHS_DEPR1
5080 vss __builtin_vec_vaddshs (vbs, vss);
5081 VADDSHS VADDSHS_DEPR2
5082 vss __builtin_vec_vaddshs (vss, vbs);
5083 VADDSHS VADDSHS_DEPR3
5084
5085[VEC_VADDSWS, vec_vaddsws, __builtin_vec_vaddsws]
5086 vsi __builtin_vec_vaddsws (vsi, vsi);
5087 VADDSWS VADDSWS_DEPR1
5088 vsi __builtin_vec_vaddsws (vbi, vsi);
5089 VADDSWS VADDSWS_DEPR2
5090 vsi __builtin_vec_vaddsws (vsi, vbi);
5091 VADDSWS VADDSWS_DEPR3
5092
5093[VEC_VADDUBM, vec_vaddubm, __builtin_vec_vaddubm]
5094 vsc __builtin_vec_vaddubm (vsc, vsc);
5095 VADDUBM VADDUBM_DEPR1
5096 vuc __builtin_vec_vaddubm (vsc, vuc);
5097 VADDUBM VADDUBM_DEPR2
5098 vuc __builtin_vec_vaddubm (vuc, vsc);
5099 VADDUBM VADDUBM_DEPR3
5100 vuc __builtin_vec_vaddubm (vuc, vuc);
5101 VADDUBM VADDUBM_DEPR4
5102 vsc __builtin_vec_vaddubm (vbc, vsc);
5103 VADDUBM VADDUBM_DEPR5
5104 vsc __builtin_vec_vaddubm (vsc, vbc);
5105 VADDUBM VADDUBM_DEPR6
5106 vuc __builtin_vec_vaddubm (vbc, vuc);
5107 VADDUBM VADDUBM_DEPR7
5108 vuc __builtin_vec_vaddubm (vuc, vbc);
5109 VADDUBM VADDUBM_DEPR8
5110
5111[VEC_VADDUBS, vec_vaddubs, __builtin_vec_vaddubs]
5112 vuc __builtin_vec_vaddubs (vsc, vuc);
5113 VADDUBS VADDUBS_DEPR1
5114 vuc __builtin_vec_vaddubs (vuc, vsc);
5115 VADDUBS VADDUBS_DEPR2
5116 vuc __builtin_vec_vaddubs (vuc, vuc);
5117 VADDUBS VADDUBS_DEPR3
5118 vuc __builtin_vec_vaddubs (vbc, vuc);
5119 VADDUBS VADDUBS_DEPR4
5120 vuc __builtin_vec_vaddubs (vuc, vbc);
5121 VADDUBS VADDUBS_DEPR5
5122
7e836079 5123[VEC_VADDUDM, vec_vaddudm, __builtin_vec_vaddudm]
e2693a72
BS
5124 vsll __builtin_vec_vaddudm (vbll, vsll);
5125 VADDUDM VADDUDM_DEPR1
5126 vsll __builtin_vec_vaddudm (vsll, vbll);
5127 VADDUDM VADDUDM_DEPR2
5128 vsll __builtin_vec_vaddudm (vsll, vsll);
5129 VADDUDM VADDUDM_DEPR3
5130 vull __builtin_vec_vaddudm (vbll, vull);
5131 VADDUDM VADDUDM_DEPR4
5132 vull __builtin_vec_vaddudm (vull, vbll);
5133 VADDUDM VADDUDM_DEPR5
5134 vull __builtin_vec_vaddudm (vull, vull);
5135 VADDUDM VADDUDM_DEPR6
5136
5137[VEC_VADDUHM, vec_vadduhm, __builtin_vec_vadduhm]
5138 vss __builtin_vec_vadduhm (vss, vss);
5139 VADDUHM VADDUHM_DEPR1
5140 vus __builtin_vec_vadduhm (vss, vus);
5141 VADDUHM VADDUHM_DEPR2
5142 vus __builtin_vec_vadduhm (vus, vss);
5143 VADDUHM VADDUHM_DEPR3
5144 vus __builtin_vec_vadduhm (vus, vus);
5145 VADDUHM VADDUHM_DEPR4
5146 vss __builtin_vec_vadduhm (vbs, vss);
5147 VADDUHM VADDUHM_DEPR5
5148 vss __builtin_vec_vadduhm (vss, vbs);
5149 VADDUHM VADDUHM_DEPR6
5150 vus __builtin_vec_vadduhm (vbs, vus);
5151 VADDUHM VADDUHM_DEPR7
5152 vus __builtin_vec_vadduhm (vus, vbs);
5153 VADDUHM VADDUHM_DEPR8
5154
5155[VEC_VADDUHS, vec_vadduhs, __builtin_vec_vadduhs]
5156 vus __builtin_vec_vadduhs (vss, vus);
5157 VADDUHS VADDUHS_DEPR1
5158 vus __builtin_vec_vadduhs (vus, vss);
5159 VADDUHS VADDUHS_DEPR2
5160 vus __builtin_vec_vadduhs (vus, vus);
5161 VADDUHS VADDUHS_DEPR3
5162 vus __builtin_vec_vadduhs (vbs, vus);
5163 VADDUHS VADDUHS_DEPR4
5164 vus __builtin_vec_vadduhs (vus, vbs);
5165 VADDUHS VADDUHS_DEPR5
5166
7e836079 5167[VEC_VADDUQM, vec_vadduqm, __builtin_vec_vadduqm]
e2693a72
BS
5168 vsq __builtin_vec_vadduqm (vsq, vsq);
5169 VADDUQM VADDUQM_DEPR1
5170 vuq __builtin_vec_vadduqm (vuq, vuq);
5171 VADDUQM VADDUQM_DEPR2
5172
5173[VEC_VADDUWM, vec_vadduwm, __builtin_vec_vadduwm]
5174 vsi __builtin_vec_vadduwm (vsi, vsi);
5175 VADDUWM VADDUWM_DEPR1
5176 vui __builtin_vec_vadduwm (vsi, vui);
5177 VADDUWM VADDUWM_DEPR2
5178 vui __builtin_vec_vadduwm (vui, vsi);
5179 VADDUWM VADDUWM_DEPR3
5180 vui __builtin_vec_vadduwm (vui, vui);
5181 VADDUWM VADDUWM_DEPR4
5182 vsi __builtin_vec_vadduwm (vbi, vsi);
5183 VADDUWM VADDUWM_DEPR5
5184 vsi __builtin_vec_vadduwm (vsi, vbi);
5185 VADDUWM VADDUWM_DEPR6
5186 vui __builtin_vec_vadduwm (vbi, vui);
5187 VADDUWM VADDUWM_DEPR7
5188 vui __builtin_vec_vadduwm (vui, vbi);
5189 VADDUWM VADDUWM_DEPR8
5190
5191[VEC_VADDUWS, vec_vadduws, __builtin_vec_vadduws]
5192 vui __builtin_vec_vadduws (vsi, vui);
5193 VADDUWS VADDUWS_DEPR1
5194 vui __builtin_vec_vadduws (vui, vsi);
5195 VADDUWS VADDUWS_DEPR2
5196 vui __builtin_vec_vadduws (vui, vui);
5197 VADDUWS VADDUWS_DEPR3
5198 vui __builtin_vec_vadduws (vbi, vui);
5199 VADDUWS VADDUWS_DEPR4
5200 vui __builtin_vec_vadduws (vui, vbi);
5201 VADDUWS VADDUWS_DEPR5
5202
5203[VEC_VADUB, vec_absdb, __builtin_vec_vadub]
5204 vuc __builtin_vec_vadub (vuc, vuc);
5205 VADUB VADUB_DEPR1
5206
5207[VEC_VADUH, vec_absdh, __builtin_vec_vaduh]
5208 vus __builtin_vec_vaduh (vus, vus);
5209 VADUH VADUH_DEPR1
5210
5211[VEC_VADUW, vec_absdw, __builtin_vec_vaduw]
5212 vui __builtin_vec_vaduw (vui, vui);
5213 VADUW VADUW_DEPR1
5214
5215[VEC_VAVGSB, vec_vavgsb, __builtin_vec_vavgsb]
5216 vsc __builtin_vec_vavgsb (vsc, vsc);
5217 VAVGSB VAVGSB_DEPR1
5218
5219[VEC_VAVGSH, vec_vavgsh, __builtin_vec_vavgsh]
5220 vss __builtin_vec_vavgsh (vss, vss);
5221 VAVGSH VAVGSH_DEPR1
5222
5223[VEC_VAVGSW, vec_vavgsw, __builtin_vec_vavgsw]
5224 vsi __builtin_vec_vavgsw (vsi, vsi);
5225 VAVGSW VAVGSW_DEPR1
5226
5227[VEC_VAVGUB, vec_vavgub, __builtin_vec_vavgub]
5228 vuc __builtin_vec_vavgub (vuc, vuc);
5229 VAVGUB VAVGUB_DEPR1
5230
5231[VEC_VAVGUH, vec_vavguh, __builtin_vec_vavguh]
5232 vus __builtin_vec_vavguh (vus, vus);
5233 VAVGUH VAVGUH_DEPR1
5234
5235[VEC_VAVGUW, vec_vavguw, __builtin_vec_vavguw]
5236 vui __builtin_vec_vavguw (vui, vui);
5237 VAVGUW VAVGUW_DEPR1
5238
7e836079 5239[VEC_VBPERMQ, vec_vbpermq, __builtin_vec_vbpermq]
e2693a72
BS
5240 vull __builtin_vec_vbpermq (vull, vuc);
5241 VBPERMQ VBPERMQ_DEPR1
5242 vsll __builtin_vec_vbpermq (vsc, vsc);
5243 VBPERMQ VBPERMQ_DEPR2
5244 vull __builtin_vec_vbpermq (vuc, vuc);
5245 VBPERMQ VBPERMQ_DEPR3
5246 vull __builtin_vec_vbpermq (vuq, vuc);
5247 VBPERMQ VBPERMQ_DEPR4
5248
5249[VEC_VCFSX, vec_vcfsx, __builtin_vec_vcfsx]
5250 vf __builtin_vec_vcfsx (vsi, const int);
5251 VCFSX VCFSX_DEPR1
5252
5253[VEC_VCFUX, vec_vcfux, __builtin_vec_vcfux]
5254 vf __builtin_vec_vcfux (vui, const int);
5255 VCFUX VCFUX_DEPR1
5256
7e836079 5257[VEC_VCLZB, vec_vclzb, __builtin_vec_vclzb]
e2693a72
BS
5258 vsc __builtin_vec_vclzb (vsc);
5259 VCLZB VCLZB_DEPR1
5260 vuc __builtin_vec_vclzb (vuc);
5261 VCLZB VCLZB_DEPR2
5262
7e836079 5263[VEC_VCLZD, vec_vclzd, __builtin_vec_vclzd]
e2693a72
BS
5264 vsll __builtin_vec_vclzd (vsll);
5265 VCLZD VCLZD_DEPR1
5266 vull __builtin_vec_vclzd (vull);
5267 VCLZD VCLZD_DEPR2
5268
7e836079 5269[VEC_VCLZH, vec_vclzh, __builtin_vec_vclzh]
e2693a72
BS
5270 vss __builtin_vec_vclzh (vss);
5271 VCLZH VCLZH_DEPR1
5272 vus __builtin_vec_vclzh (vus);
5273 VCLZH VCLZH_DEPR2
5274
7e836079 5275[VEC_VCLZW, vec_vclzw, __builtin_vec_vclzw]
e2693a72
BS
5276 vsi __builtin_vec_vclzw (vsi);
5277 VCLZW VCLZW_DEPR1
5278 vui __builtin_vec_vclzw (vui);
5279 VCLZW VCLZW_DEPR2
5280
5281[VEC_VCMPEQFP, vec_vcmpeqfp, __builtin_vec_vcmpeqfp]
5282 vbi __builtin_vec_vcmpeqfp (vf, vf);
5283 VCMPEQFP VCMPEQFP_DEPR1
5284
5285[VEC_VCMPEQUB, vec_vcmpequb, __builtin_vec_vcmpequb]
5286 vbc __builtin_vec_vcmpequb (vsc, vsc);
5287 VCMPEQUB VCMPEQUB_DEPR1
5288 vbc __builtin_vec_vcmpequb (vuc, vuc);
5289 VCMPEQUB VCMPEQUB_DEPR2
5290
5291[VEC_VCMPEQUH, vec_vcmpequh, __builtin_vec_vcmpequh]
5292 vbs __builtin_vec_vcmpequh (vss, vss);
5293 VCMPEQUH VCMPEQUH_DEPR1
5294 vbs __builtin_vec_vcmpequh (vus, vus);
5295 VCMPEQUH VCMPEQUH_DEPR2
5296
5297[VEC_VCMPEQUW, vec_vcmpequw, __builtin_vec_vcmpequw]
5298 vbi __builtin_vec_vcmpequw (vsi, vsi);
5299 VCMPEQUW VCMPEQUW_DEPR1
5300 vbi __builtin_vec_vcmpequw (vui, vui);
5301 VCMPEQUW VCMPEQUW_DEPR2
5302
5303[VEC_VCMPGTFP, vec_vcmpgtfp, __builtin_vec_vcmpgtfp]
5304 vbi __builtin_vec_vcmpgtfp (vf, vf);
5305 VCMPGTFP VCMPGTFP_DEPR1
5306
5307[VEC_VCMPGTSB, vec_vcmpgtsb, __builtin_vec_vcmpgtsb]
5308 vbc __builtin_vec_vcmpgtsb (vsc, vsc);
5309 VCMPGTSB VCMPGTSB_DEPR1
5310
5311[VEC_VCMPGTSH, vec_vcmpgtsh, __builtin_vec_vcmpgtsh]
5312 vbs __builtin_vec_vcmpgtsh (vss, vss);
5313 VCMPGTSH VCMPGTSH_DEPR1
5314
5315[VEC_VCMPGTSW, vec_vcmpgtsw, __builtin_vec_vcmpgtsw]
5316 vbi __builtin_vec_vcmpgtsw (vsi, vsi);
5317 VCMPGTSW VCMPGTSW_DEPR1
5318
5319[VEC_VCMPGTUB, vec_vcmpgtub, __builtin_vec_vcmpgtub]
5320 vbc __builtin_vec_vcmpgtub (vuc, vuc);
5321 VCMPGTUB VCMPGTUB_DEPR1
5322
5323[VEC_VCMPGTUH, vec_vcmpgtuh, __builtin_vec_vcmpgtuh]
5324 vbs __builtin_vec_vcmpgtuh (vus, vus);
5325 VCMPGTUH VCMPGTUH_DEPR1
5326
5327[VEC_VCMPGTUW, vec_vcmpgtuw, __builtin_vec_vcmpgtuw]
5328 vbi __builtin_vec_vcmpgtuw (vui, vui);
5329 VCMPGTUW VCMPGTUW_DEPR1
5330
7e836079 5331[VEC_VCTZB, vec_vctzb, __builtin_vec_vctzb]
e2693a72
BS
5332 vsc __builtin_vec_vctzb (vsc);
5333 VCTZB VCTZB_DEPR1
5334 vuc __builtin_vec_vctzb (vuc);
5335 VCTZB VCTZB_DEPR2
5336
7e836079 5337[VEC_VCTZD, vec_vctzd, __builtin_vec_vctzd]
e2693a72
BS
5338 vsll __builtin_vec_vctzd (vsll);
5339 VCTZD VCTZD_DEPR1
5340 vull __builtin_vec_vctzd (vull);
5341 VCTZD VCTZD_DEPR2
5342
7e836079 5343[VEC_VCTZH, vec_vctzh, __builtin_vec_vctzh]
e2693a72
BS
5344 vss __builtin_vec_vctzh (vss);
5345 VCTZH VCTZH_DEPR1
5346 vus __builtin_vec_vctzh (vus);
5347 VCTZH VCTZH_DEPR2
5348
7e836079 5349[VEC_VCTZW, vec_vctzw, __builtin_vec_vctzw]
e2693a72
BS
5350 vsi __builtin_vec_vctzw (vsi);
5351 VCTZW VCTZW_DEPR1
5352 vui __builtin_vec_vctzw (vui);
5353 VCTZW VCTZW_DEPR2
5354
7e836079 5355[VEC_VEEDP, vec_extract_exp_dp, __builtin_vec_extract_exp_dp]
e2693a72
BS
5356 vull __builtin_vec_extract_exp_dp (vd);
5357 VEEDP VEEDP_DEPR1
5358
7e836079 5359[VEC_VEESP, vec_extract_exp_sp, __builtin_vec_extract_exp_sp]
e2693a72
BS
5360 vui __builtin_vec_extract_exp_sp (vf);
5361 VEESP VEESP_DEPR1
5362
7e836079 5363[VEC_VESDP, vec_extract_sig_dp, __builtin_vec_extract_sig_dp]
e2693a72
BS
5364 vull __builtin_vec_extract_sig_dp (vd);
5365 VESDP VESDP_DEPR1
5366
7e836079 5367[VEC_VESSP, vec_extract_sig_sp, __builtin_vec_extract_sig_sp]
e2693a72
BS
5368 vui __builtin_vec_extract_sig_sp (vf);
5369 VESSP VESSP_DEPR1
5370
7e836079 5371[VEC_VIEDP, vec_insert_exp_dp, __builtin_vec_insert_exp_dp]
e2693a72
BS
5372 vd __builtin_vec_insert_exp_dp (vd, vull);
5373 VIEDP VIEDP_DEPR1
5374 vd __builtin_vec_insert_exp_dp (vull, vull);
5375 VIEDP VIEDP_DEPR2
5376
7e836079 5377[VEC_VIESP, vec_insert_exp_sp, __builtin_vec_insert_exp_sp]
e2693a72
BS
5378 vf __builtin_vec_insert_exp_sp (vf, vui);
5379 VIESP VIESP_DEPR1
5380 vf __builtin_vec_insert_exp_sp (vui, vui);
5381 VIESP VIESP_DEPR2
5382
5383[VEC_VMAXFP, vec_vmaxfp, __builtin_vec_vmaxfp]
5384 vf __builtin_vec_vmaxfp (vf, vf);
5385 VMAXFP VMAXFP_DEPR1
5386
5387[VEC_VMAXSB, vec_vmaxsb, __builtin_vec_vmaxsb]
5388 vsc __builtin_vec_vmaxsb (vsc, vsc);
5389 VMAXSB VMAXSB_DEPR1
5390 vsc __builtin_vec_vmaxsb (vbc, vsc);
5391 VMAXSB VMAXSB_DEPR2
5392 vsc __builtin_vec_vmaxsb (vsc, vbc);
5393 VMAXSB VMAXSB_DEPR3
5394
5395[VEC_VMAXSD, vec_vmaxsd, __builtin_vec_vmaxsd]
5396 vsll __builtin_vec_vmaxsd (vsll, vsll);
5397 VMAXSD VMAXSD_DEPR1
5398 vsll __builtin_vec_vmaxsd (vbll, vsll);
5399 VMAXSD VMAXSD_DEPR2
5400 vsll __builtin_vec_vmaxsd (vsll, vbll);
5401 VMAXSD VMAXSD_DEPR3
5402
5403[VEC_VMAXSH, vec_vmaxsh, __builtin_vec_vmaxsh]
5404 vss __builtin_vec_vmaxsh (vss, vss);
5405 VMAXSH VMAXSH_DEPR1
5406 vss __builtin_vec_vmaxsh (vbs, vss);
5407 VMAXSH VMAXSH_DEPR2
5408 vss __builtin_vec_vmaxsh (vss, vbs);
5409 VMAXSH VMAXSH_DEPR3
5410
5411[VEC_VMAXSW, vec_vmaxsw, __builtin_vec_vmaxsw]
5412 vsi __builtin_vec_vmaxsw (vsi, vsi);
5413 VMAXSW VMAXSW_DEPR1
5414 vsi __builtin_vec_vmaxsw (vbi, vsi);
5415 VMAXSW VMAXSW_DEPR2
5416 vsi __builtin_vec_vmaxsw (vsi, vbi);
5417 VMAXSW VMAXSW_DEPR3
5418
5419[VEC_VMAXUB, vec_vmaxub, __builtin_vec_vmaxub]
5420 vuc __builtin_vec_vmaxub (vsc, vuc);
5421 VMAXUB VMAXUB_DEPR1
5422 vuc __builtin_vec_vmaxub (vuc, vsc);
5423 VMAXUB VMAXUB_DEPR2
5424 vuc __builtin_vec_vmaxub (vuc, vuc);
5425 VMAXUB VMAXUB_DEPR3
5426 vuc __builtin_vec_vmaxub (vbc, vuc);
5427 VMAXUB VMAXUB_DEPR4
5428 vuc __builtin_vec_vmaxub (vuc, vbc);
5429 VMAXUB VMAXUB_DEPR5
5430
5431[VEC_VMAXUD, vec_vmaxud, __builtin_vec_vmaxud]
5432 vull __builtin_vec_vmaxud (vull, vull);
5433 VMAXUD VMAXUD_DEPR1
5434 vull __builtin_vec_vmaxud (vbll, vull);
5435 VMAXUD VMAXUD_DEPR2
5436 vull __builtin_vec_vmaxud (vull, vbll);
5437 VMAXUD VMAXUD_DEPR3
5438
5439[VEC_VMAXUH, vec_vmaxuh, __builtin_vec_vmaxuh]
5440 vus __builtin_vec_vmaxuh (vss, vus);
5441 VMAXUH VMAXUH_DEPR1
5442 vus __builtin_vec_vmaxuh (vus, vss);
5443 VMAXUH VMAXUH_DEPR2
5444 vus __builtin_vec_vmaxuh (vus, vus);
5445 VMAXUH VMAXUH_DEPR3
5446 vus __builtin_vec_vmaxuh (vbs, vus);
5447 VMAXUH VMAXUH_DEPR4
5448 vus __builtin_vec_vmaxuh (vus, vbs);
5449 VMAXUH VMAXUH_DEPR5
5450
5451[VEC_VMAXUW, vec_vmaxuw, __builtin_vec_vmaxuw]
5452 vui __builtin_vec_vmaxuw (vsi, vui);
5453 VMAXUW VMAXUW_DEPR1
5454 vui __builtin_vec_vmaxuw (vui, vsi);
5455 VMAXUW VMAXUW_DEPR2
5456 vui __builtin_vec_vmaxuw (vui, vui);
5457 VMAXUW VMAXUW_DEPR3
5458 vui __builtin_vec_vmaxuw (vbi, vui);
5459 VMAXUW VMAXUW_DEPR4
5460 vui __builtin_vec_vmaxuw (vui, vbi);
5461 VMAXUW VMAXUW_DEPR5
5462
5463[VEC_VMINFP, vec_vminfp, __builtin_vec_vminfp]
5464 vf __builtin_vec_vminfp (vf, vf);
5465 VMINFP VMINFP_DEPR1
5466
5467[VEC_VMINSB, vec_vminsb, __builtin_vec_vminsb]
5468 vsc __builtin_vec_vminsb (vsc, vsc);
5469 VMINSB VMINSB_DEPR1
5470 vsc __builtin_vec_vminsb (vbc, vsc);
5471 VMINSB VMINSB_DEPR2
5472 vsc __builtin_vec_vminsb (vsc, vbc);
5473 VMINSB VMINSB_DEPR3
5474
5475[VEC_VMINSD, vec_vminsd, __builtin_vec_vminsd]
5476 vsll __builtin_vec_vminsd (vsll, vsll);
5477 VMINSD VMINSD_DEPR1
5478 vsll __builtin_vec_vminsd (vbll, vsll);
5479 VMINSD VMINSD_DEPR2
5480 vsll __builtin_vec_vminsd (vsll, vbll);
5481 VMINSD VMINSD_DEPR3
5482
5483[VEC_VMINSH, vec_vminsh, __builtin_vec_vminsh]
5484 vss __builtin_vec_vminsh (vss, vss);
5485 VMINSH VMINSH_DEPR1
5486 vss __builtin_vec_vminsh (vbs, vss);
5487 VMINSH VMINSH_DEPR2
5488 vss __builtin_vec_vminsh (vss, vbs);
5489 VMINSH VMINSH_DEPR3
5490
5491[VEC_VMINSW, vec_vminsw, __builtin_vec_vminsw]
5492 vsi __builtin_vec_vminsw (vsi, vsi);
5493 VMINSW VMINSW_DEPR1
5494 vsi __builtin_vec_vminsw (vbi, vsi);
5495 VMINSW VMINSW_DEPR2
5496 vsi __builtin_vec_vminsw (vsi, vbi);
5497 VMINSW VMINSW_DEPR3
5498
5499[VEC_VMINUB, vec_vminub, __builtin_vec_vminub]
5500 vuc __builtin_vec_vminub (vsc, vuc);
5501 VMINUB VMINUB_DEPR1
5502 vuc __builtin_vec_vminub (vuc, vsc);
5503 VMINUB VMINUB_DEPR2
5504 vuc __builtin_vec_vminub (vuc, vuc);
5505 VMINUB VMINUB_DEPR3
5506 vuc __builtin_vec_vminub (vbc, vuc);
5507 VMINUB VMINUB_DEPR4
5508 vuc __builtin_vec_vminub (vuc, vbc);
5509 VMINUB VMINUB_DEPR5
5510
5511[VEC_VMINUD, vec_vminud, __builtin_vec_vminud]
5512 vull __builtin_vec_vminud (vull, vull);
5513 VMINUD VMINUD_DEPR1
5514 vull __builtin_vec_vminud (vbll, vull);
5515 VMINUD VMINUD_DEPR2
5516 vull __builtin_vec_vminud (vull, vbll);
5517 VMINUD VMINUD_DEPR3
5518
5519[VEC_VMINUH, vec_vminuh, __builtin_vec_vminuh]
5520 vus __builtin_vec_vminuh (vss, vus);
5521 VMINUH VMINUH_DEPR1
5522 vus __builtin_vec_vminuh (vus, vss);
5523 VMINUH VMINUH_DEPR2
5524 vus __builtin_vec_vminuh (vus, vus);
5525 VMINUH VMINUH_DEPR3
5526 vus __builtin_vec_vminuh (vbs, vus);
5527 VMINUH VMINUH_DEPR4
5528 vus __builtin_vec_vminuh (vus, vbs);
5529 VMINUH VMINUH_DEPR5
5530
5531[VEC_VMINUW, vec_vminuw, __builtin_vec_vminuw]
5532 vui __builtin_vec_vminuw (vsi, vui);
5533 VMINUW VMINUW_DEPR1
5534 vui __builtin_vec_vminuw (vui, vsi);
5535 VMINUW VMINUW_DEPR2
5536 vui __builtin_vec_vminuw (vui, vui);
5537 VMINUW VMINUW_DEPR3
5538 vui __builtin_vec_vminuw (vbi, vui);
5539 VMINUW VMINUW_DEPR4
5540 vui __builtin_vec_vminuw (vui, vbi);
5541 VMINUW VMINUW_DEPR5
5542
5543[VEC_VMRGHB, vec_vmrghb, __builtin_vec_vmrghb]
5544 vsc __builtin_vec_vmrghb (vsc, vsc);
5545 VMRGHB VMRGHB_DEPR1
5546 vuc __builtin_vec_vmrghb (vuc, vuc);
5547 VMRGHB VMRGHB_DEPR2
5548 vbc __builtin_vec_vmrghb (vbc, vbc);
5549 VMRGHB VMRGHB_DEPR3
5550
5551[VEC_VMRGHH, vec_vmrghh, __builtin_vec_vmrghh]
5552 vss __builtin_vec_vmrghh (vss, vss);
5553 VMRGHH VMRGHH_DEPR1
5554 vus __builtin_vec_vmrghh (vus, vus);
5555 VMRGHH VMRGHH_DEPR2
5556 vbs __builtin_vec_vmrghh (vbs, vbs);
5557 VMRGHH VMRGHH_DEPR3
5558 vp __builtin_vec_vmrghh (vp, vp);
5559 VMRGHH VMRGHH_DEPR4
5560
5561[VEC_VMRGHW, vec_vmrghw, __builtin_vec_vmrghw]
5562 vf __builtin_vec_vmrghw (vf, vf);
5563 VMRGHW VMRGHW_DEPR1
5564 vsi __builtin_vec_vmrghw (vsi, vsi);
5565 VMRGHW VMRGHW_DEPR2
5566 vui __builtin_vec_vmrghw (vui, vui);
5567 VMRGHW VMRGHW_DEPR3
5568 vbi __builtin_vec_vmrghw (vbi, vbi);
5569 VMRGHW VMRGHW_DEPR4
5570
5571[VEC_VMRGLB, vec_vmrglb, __builtin_vec_vmrglb]
5572 vsc __builtin_vec_vmrglb (vsc, vsc);
5573 VMRGLB VMRGLB_DEPR1
5574 vuc __builtin_vec_vmrglb (vuc, vuc);
5575 VMRGLB VMRGLB_DEPR2
5576 vbc __builtin_vec_vmrglb (vbc, vbc);
5577 VMRGLB VMRGLB_DEPR3
5578
5579[VEC_VMRGLH, vec_vmrglh, __builtin_vec_vmrglh]
5580 vss __builtin_vec_vmrglh (vss, vss);
5581 VMRGLH VMRGLH_DEPR1
5582 vus __builtin_vec_vmrglh (vus, vus);
5583 VMRGLH VMRGLH_DEPR2
5584 vbs __builtin_vec_vmrglh (vbs, vbs);
5585 VMRGLH VMRGLH_DEPR3
5586 vp __builtin_vec_vmrglh (vp, vp);
5587 VMRGLH VMRGLH_DEPR4
5588
5589[VEC_VMRGLW, vec_vmrglw, __builtin_vec_vmrglw]
5590 vf __builtin_vec_vmrglw (vf, vf);
5591 VMRGLW VMRGLW_DEPR1
5592 vsi __builtin_vec_vmrglw (vsi, vsi);
5593 VMRGLW VMRGLW_DEPR2
5594 vui __builtin_vec_vmrglw (vui, vui);
5595 VMRGLW VMRGLW_DEPR3
5596 vbi __builtin_vec_vmrglw (vbi, vbi);
5597 VMRGLW VMRGLW_DEPR4
5598
5599[VEC_VMSUMMBM, vec_vmsummbm, __builtin_vec_vmsummbm]
5600 vsi __builtin_vec_vmsummbm (vsc, vuc, vsi);
5601 VMSUMMBM VMSUMMBM_DEPR1
5602
5603[VEC_VMSUMSHM, vec_vmsumshm, __builtin_vec_vmsumshm]
5604 vsi __builtin_vec_vmsumshm (vss, vss, vsi);
5605 VMSUMSHM VMSUMSHM_DEPR1
5606
5607[VEC_VMSUMSHS, vec_vmsumshs, __builtin_vec_vmsumshs]
5608 vsi __builtin_vec_vmsumshs (vss, vss, vsi);
5609 VMSUMSHS VMSUMSHS_DEPR1
5610
5611[VEC_VMSUMUBM, vec_vmsumubm, __builtin_vec_vmsumubm]
5612 vui __builtin_vec_vmsumubm (vuc, vuc, vui);
5613 VMSUMUBM VMSUMUBM_DEPR1
5614
5615[VEC_VMSUMUDM, vec_vmsumudm, __builtin_vec_vmsumudm]
5616 vuq __builtin_vec_vmsumudm (vull, vull, vuq);
5617 VMSUMUDM VMSUMUDM_DEPR1
5618
5619[VEC_VMSUMUHM, vec_vmsumuhm, __builtin_vec_vmsumuhm]
5620 vui __builtin_vec_vmsumuhm (vus, vus, vui);
5621 VMSUMUHM VMSUMUHM_DEPR1
5622
5623[VEC_VMSUMUHS, vec_vmsumuhs, __builtin_vec_vmsumuhs]
5624 vui __builtin_vec_vmsumuhs (vus, vus, vui);
5625 VMSUMUHS VMSUMUHS_DEPR1
5626
5627[VEC_VMULESB, vec_vmulesb, __builtin_vec_vmulesb]
5628 vss __builtin_vec_vmulesb (vsc, vsc);
5629 VMULESB VMULESB_DEPR1
5630
5631[VEC_VMULESH, vec_vmulesh, __builtin_vec_vmulesh]
5632 vsi __builtin_vec_vmulesh (vss, vss);
5633 VMULESH VMULESH_DEPR1
5634
5635[VEC_VMULESW, SKIP, __builtin_vec_vmulesw]
5636 vsll __builtin_vec_vmulesw (vsi, vsi);
5637 VMULESW VMULESW_DEPR1
5638
5639[VEC_VMULEUB, vec_vmuleub, __builtin_vec_vmuleub]
5640 vus __builtin_vec_vmuleub (vuc, vuc);
5641 VMULEUB VMULEUB_DEPR1
5642
5643[VEC_VMULEUH, vec_vmuleuh, __builtin_vec_vmuleuh]
5644 vui __builtin_vec_vmuleuh (vus, vus);
5645 VMULEUH VMULEUH_DEPR1
5646
5647[VEC_VMULEUW, SKIP, __builtin_vec_vmuleuw]
5648 vull __builtin_vec_vmuleuw (vui, vui);
5649 VMULEUW VMULEUW_DEPR1
5650
5651[VEC_VMULOSB, vec_vmulosb, __builtin_vec_vmulosb]
5652 vss __builtin_vec_vmulosb (vsc, vsc);
5653 VMULOSB VMULOSB_DEPR1
5654
5655[VEC_VMULOSH, vec_vmulosh, __builtin_vec_vmulosh]
5656 vsi __builtin_vec_vmulosh (vss, vss);
5657 VMULOSH VMULOSH_DEPR1
5658
5659[VEC_VMULOSW, SKIP, __builtin_vec_vmulosw]
5660 vsll __builtin_vec_vmulosw (vsi, vsi);
5661 VMULOSW VMULOSW_DEPR1
5662
5663[VEC_VMULOUB, vec_vmuloub, __builtin_vec_vmuloub]
5664 vus __builtin_vec_vmuloub (vuc, vuc);
5665 VMULOUB VMULOUB_DEPR1
5666
5667[VEC_VMULOUH, vec_vmulouh, __builtin_vec_vmulouh]
5668 vui __builtin_vec_vmulouh (vus, vus);
5669 VMULOUH VMULOUH_DEPR1
5670
5671[VEC_VMULOUW, SKIP, __builtin_vec_vmulouw]
5672 vull __builtin_vec_vmulouw (vui, vui);
5673 VMULOUW VMULOUW_DEPR1
5674
7e836079 5675[VEC_VPKSDSS, vec_vpksdss, __builtin_vec_vpksdss]
e2693a72
BS
5676 vsi __builtin_vec_vpksdss (vsll, vsll);
5677 VPKSDSS VPKSDSS_DEPR1
5678
7e836079 5679[VEC_VPKSDUS, vec_vpksdus, __builtin_vec_vpksdus]
e2693a72
BS
5680 vui __builtin_vec_vpksdus (vsll, vsll);
5681 VPKSDUS VPKSDUS_DEPR1
5682
5683[VEC_VPKSHSS, vec_vpkshss, __builtin_vec_vpkshss]
5684 vsc __builtin_vec_vpkshss (vss, vss);
5685 VPKSHSS VPKSHSS_DEPR1
5686
5687[VEC_VPKSHUS, vec_vpkshus, __builtin_vec_vpkshus]
5688 vuc __builtin_vec_vpkshus (vss, vss);
5689 VPKSHUS VPKSHUS_DEPR1
5690
5691[VEC_VPKSWSS, vec_vpkswss, __builtin_vec_vpkswss]
5692 vss __builtin_vec_vpkswss (vsi, vsi);
5693 VPKSWSS VPKSWSS_DEPR1
5694
5695[VEC_VPKSWUS, vec_vpkswus, __builtin_vec_vpkswus]
5696 vus __builtin_vec_vpkswus (vsi, vsi);
5697 VPKSWUS VPKSWUS_DEPR1
5698
7e836079 5699[VEC_VPKUDUM, vec_vpkudum, __builtin_vec_vpkudum]
e2693a72
BS
5700 vsi __builtin_vec_vpkudum (vsll, vsll);
5701 VPKUDUM VPKUDUM_DEPR1
5702 vui __builtin_vec_vpkudum (vull, vull);
5703 VPKUDUM VPKUDUM_DEPR2
5704 vbi __builtin_vec_vpkudum (vbll, vbll);
5705 VPKUDUM VPKUDUM_DEPR3
5706
7e836079 5707[VEC_VPKUDUS, vec_vpkudus, __builtin_vec_vpkudus]
e2693a72
BS
5708 vui __builtin_vec_vpkudus (vull, vull);
5709 VPKUDUS VPKUDUS_DEPR1
5710
5711[VEC_VPKUHUM, vec_vpkuhum, __builtin_vec_vpkuhum]
5712 vsc __builtin_vec_vpkuhum (vss, vss);
5713 VPKUHUM VPKUHUM_DEPR1
5714 vuc __builtin_vec_vpkuhum (vus, vus);
5715 VPKUHUM VPKUHUM_DEPR2
5716 vbc __builtin_vec_vpkuhum (vbs, vbs);
5717 VPKUHUM VPKUHUM_DEPR3
5718
5719[VEC_VPKUHUS, vec_vpkuhus, __builtin_vec_vpkuhus]
5720 vuc __builtin_vec_vpkuhus (vus, vus);
5721 VPKUHUS VPKUHUS_DEPR1
5722
5723[VEC_VPKUWUM, vec_vpkuwum, __builtin_vec_vpkuwum]
5724 vss __builtin_vec_vpkuwum (vsi, vsi);
5725 VPKUWUM VPKUWUM_DEPR1
5726 vus __builtin_vec_vpkuwum (vui, vui);
5727 VPKUWUM VPKUWUM_DEPR2
5728 vbs __builtin_vec_vpkuwum (vbi, vbi);
5729 VPKUWUM VPKUWUM_DEPR3
5730
5731[VEC_VPKUWUS, vec_vpkuwus, __builtin_vec_vpkuwus]
5732 vus __builtin_vec_vpkuwus (vui, vui);
5733 VPKUWUS VPKUWUS_DEPR1
5734
7e836079 5735[VEC_VPOPCNT, vec_vpopcnt, __builtin_vec_vpopcnt]
e2693a72
BS
5736 vsc __builtin_vec_vpopcnt (vsc);
5737 VPOPCNTB VPOPCNT_DEPR1
5738 vuc __builtin_vec_vpopcnt (vuc);
5739 VPOPCNTB VPOPCNT_DEPR2
5740 vss __builtin_vec_vpopcnt (vss);
5741 VPOPCNTH VPOPCNT_DEPR3
5742 vus __builtin_vec_vpopcnt (vus);
5743 VPOPCNTH VPOPCNT_DEPR4
5744 vsi __builtin_vec_vpopcnt (vsi);
5745 VPOPCNTW VPOPCNT_DEPR5
5746 vui __builtin_vec_vpopcnt (vui);
5747 VPOPCNTW VPOPCNT_DEPR6
5748 vsll __builtin_vec_vpopcnt (vsll);
5749 VPOPCNTD VPOPCNT_DEPR7
5750 vull __builtin_vec_vpopcnt (vull);
5751 VPOPCNTD VPOPCNT_DEPR8
5752
7e836079 5753[VEC_VPOPCNTB, vec_vpopcntb, __builtin_vec_vpopcntb]
e2693a72
BS
5754 vsc __builtin_vec_vpopcntb (vsc);
5755 VPOPCNTB VPOPCNTB_DEPR1
5756 vuc __builtin_vec_vpopcntb (vuc);
5757 VPOPCNTB VPOPCNTB_DEPR2
5758
7e836079 5759[VEC_VPOPCNTD, vec_vpopcntd, __builtin_vec_vpopcntd]
e2693a72
BS
5760 vsll __builtin_vec_vpopcntd (vsll);
5761 VPOPCNTD VPOPCNTD_DEPR1
5762 vull __builtin_vec_vpopcntd (vull);
5763 VPOPCNTD VPOPCNTD_DEPR2
5764
7e836079 5765[VEC_VPOPCNTH, vec_vpopcnth, __builtin_vec_vpopcnth]
e2693a72
BS
5766 vss __builtin_vec_vpopcnth (vss);
5767 VPOPCNTH VPOPCNTH_DEPR1
5768 vus __builtin_vec_vpopcnth (vus);
5769 VPOPCNTH VPOPCNTH_DEPR2
5770
7e836079 5771[VEC_VPOPCNTW, vec_vpopcntw, __builtin_vec_vpopcntw]
e2693a72
BS
5772 vsi __builtin_vec_vpopcntw (vsi);
5773 VPOPCNTW VPOPCNTW_DEPR1
5774 vui __builtin_vec_vpopcntw (vui);
5775 VPOPCNTW VPOPCNTW_DEPR2
5776
7e836079 5777[VEC_VPRTYBD, vec_vprtybd, __builtin_vec_vprtybd]
e2693a72
BS
5778 vsll __builtin_vec_vprtybd (vsll);
5779 VPRTYBD VPRTYBD_DEPR1
5780 vull __builtin_vec_vprtybd (vull);
5781 VPRTYBD VPRTYBD_DEPR2
5782
7e836079 5783[VEC_VPRTYBQ, vec_vprtybq, __builtin_vec_vprtybq]
e2693a72
BS
5784 vsq __builtin_vec_vprtybq (vsq);
5785 VPRTYBQ VPRTYBQ_DEPR1
5786 vuq __builtin_vec_vprtybq (vuq);
5787 VPRTYBQ VPRTYBQ_DEPR2
5788 signed __int128 __builtin_vec_vprtybq (signed __int128);
5789 VPRTYBQ VPRTYBQ_DEPR3
5790 unsigned __int128 __builtin_vec_vprtybq (unsigned __int128);
5791 VPRTYBQ VPRTYBQ_DEPR4
5792
7e836079 5793[VEC_VPRTYBW, vec_vprtybw, __builtin_vec_vprtybw]
e2693a72
BS
5794 vsi __builtin_vec_vprtybw (vsi);
5795 VPRTYBW VPRTYBW_DEPR1
5796 vui __builtin_vec_vprtybw (vui);
5797 VPRTYBW VPRTYBW_DEPR2
5798
5799[VEC_VRLB, vec_vrlb, __builtin_vec_vrlb]
5800 vsc __builtin_vec_vrlb (vsc, vuc);
5801 VRLB VRLB_DEPR1
5802 vuc __builtin_vec_vrlb (vuc, vuc);
5803 VRLB VRLB_DEPR2
5804
7e836079 5805[VEC_VRLD, SKIP, __builtin_vec_vrld]
e2693a72
BS
5806 vsll __builtin_vec_vrld (vsll, vull);
5807 VRLD VRLD_DEPR1
5808 vull __builtin_vec_vrld (vull, vull);
5809 VRLD VRLD_DEPR2
5810
5811[VEC_VRLH, vec_vrlh, __builtin_vec_vrlh]
5812 vss __builtin_vec_vrlh (vss, vus);
5813 VRLH VRLH_DEPR1
5814 vus __builtin_vec_vrlh (vus, vus);
5815 VRLH VRLH_DEPR2
5816
5817[VEC_VRLW, vec_vrlw, __builtin_vec_vrlw]
5818 vsi __builtin_vec_vrlw (vsi, vui);
5819 VRLW VRLW_DEPR1
5820 vui __builtin_vec_vrlw (vui, vui);
5821 VRLW VRLW_DEPR2
5822
5823[VEC_VSLB, vec_vslb, __builtin_vec_vslb]
5824 vsc __builtin_vec_vslb (vsc, vuc);
5825 VSLB VSLB_DEPR1
5826 vuc __builtin_vec_vslb (vuc, vuc);
5827 VSLB VSLB_DEPR2
5828
7e836079 5829[VEC_VSLD, SKIP, __builtin_vec_vsld]
e2693a72
BS
5830 vsll __builtin_vec_vsld (vsll, vull);
5831 VSLD VSLD_DEPR1
5832 vull __builtin_vec_vsld (vull, vull);
5833 VSLD VSLD_DEPR2
5834
5835[VEC_VSLH, vec_vslh, __builtin_vec_vslh]
5836 vss __builtin_vec_vslh (vss, vus);
5837 VSLH VSLH_DEPR1
5838 vus __builtin_vec_vslh (vus, vus);
5839 VSLH VSLH_DEPR2
5840
5841[VEC_VSLW, vec_vslw, __builtin_vec_vslw]
5842 vsi __builtin_vec_vslw (vsi, vui);
5843 VSLW VSLW_DEPR1
5844 vui __builtin_vec_vslw (vui, vui);
5845 VSLW VSLW_DEPR2
5846
5847[VEC_VSPLTB, vec_vspltb, __builtin_vec_vspltb]
5848 vsc __builtin_vec_vspltb (vsc, const int);
5849 VSPLTB VSPLTB_DEPR1
5850 vuc __builtin_vec_vspltb (vuc, const int);
5851 VSPLTB VSPLTB_DEPR2
5852 vbc __builtin_vec_vspltb (vbc, const int);
5853 VSPLTB VSPLTB_DEPR3
5854
5855[VEC_VSPLTH, vec_vsplth, __builtin_vec_vsplth]
5856 vss __builtin_vec_vsplth (vss, const int);
5857 VSPLTH VSPLTH_DEPR1
5858 vus __builtin_vec_vsplth (vus, const int);
5859 VSPLTH VSPLTH_DEPR2
5860 vbs __builtin_vec_vsplth (vbs, const int);
5861 VSPLTH VSPLTH_DEPR3
5862 vp __builtin_vec_vsplth (vp, const int);
5863 VSPLTH VSPLTH_DEPR4
5864
5865[VEC_VSPLTW, vec_vspltw, __builtin_vec_vspltw]
5866 vsi __builtin_vec_vspltw (vsi, const int);
5867 VSPLTW VSPLTW_DEPR1
5868 vui __builtin_vec_vspltw (vui, const int);
5869 VSPLTW VSPLTW_DEPR2
5870 vbi __builtin_vec_vspltw (vbi, const int);
5871 VSPLTW VSPLTW_DEPR3
5872 vf __builtin_vec_vspltw (vf, const int);
5873 VSPLTW VSPLTW_DEPR4
5874
5875[VEC_VSRAB, vec_vsrab, __builtin_vec_vsrab]
5876 vsc __builtin_vec_vsrab (vsc, vuc);
5877 VSRAB VSRAB_DEPR1
5878 vuc __builtin_vec_vsrab (vuc, vuc);
5879 VSRAB VSRAB_DEPR2
5880
7e836079 5881[VEC_VSRAD, SKIP, __builtin_vec_vsrad]
e2693a72
BS
5882 vsll __builtin_vec_vsrad (vsll, vull);
5883 VSRAD VSRAD_DEPR1
5884 vull __builtin_vec_vsrad (vull, vull);
5885 VSRAD VSRAD_DEPR2
5886
5887[VEC_VSRAH, vec_vsrah, __builtin_vec_vsrah]
5888 vss __builtin_vec_vsrah (vss, vus);
5889 VSRAH VSRAH_DEPR1
5890 vus __builtin_vec_vsrah (vus, vus);
5891 VSRAH VSRAH_DEPR2
5892
5893[VEC_VSRAW, vec_vsraw, __builtin_vec_vsraw]
5894 vsi __builtin_vec_vsraw (vsi, vui);
5895 VSRAW VSRAW_DEPR1
5896 vui __builtin_vec_vsraw (vui, vui);
5897 VSRAW VSRAW_DEPR2
5898
5899[VEC_VSRB, vec_vsrb, __builtin_vec_vsrb]
5900 vsc __builtin_vec_vsrb (vsc, vuc);
5901 VSRB VSRB_DEPR1
5902 vuc __builtin_vec_vsrb (vuc, vuc);
5903 VSRB VSRB_DEPR2
5904
7e836079 5905[VEC_VSRD, SKIP, __builtin_vec_vsrd]
e2693a72
BS
5906 vsll __builtin_vec_vsrd (vsll, vull);
5907 VSRD VSRD_DEPR1
5908 vull __builtin_vec_vsrd (vull, vull);
5909 VSRD VSRD_DEPR2
5910
5911[VEC_VSRH, vec_vsrh, __builtin_vec_vsrh]
5912 vss __builtin_vec_vsrh (vss, vus);
5913 VSRH VSRH_DEPR1
5914 vus __builtin_vec_vsrh (vus, vus);
5915 VSRH VSRH_DEPR2
5916
5917[VEC_VSRW, vec_vsrw, __builtin_vec_vsrw]
5918 vsi __builtin_vec_vsrw (vsi, vui);
5919 VSRW VSRW_DEPR1
5920 vui __builtin_vec_vsrw (vui, vui);
5921 VSRW VSRW_DEPR2
5922
7e836079 5923[VEC_VSTDCDP, scalar_test_data_class_dp, __builtin_vec_scalar_test_data_class_dp]
e2693a72
BS
5924 unsigned int __builtin_vec_scalar_test_data_class_dp (double, const int);
5925 VSTDCDP VSTDCDP_DEPR1
5926
7e836079 5927[VEC_VSTDCNDP, scalar_test_neg_dp, __builtin_vec_scalar_test_neg_dp]
e2693a72
BS
5928 unsigned int __builtin_vec_scalar_test_neg_dp (double);
5929 VSTDCNDP VSTDCNDP_DEPR1
5930
7e836079 5931[VEC_VSTDCNQP, scalar_test_neg_qp, __builtin_vec_scalar_test_neg_qp]
e2693a72
BS
5932 unsigned int __builtin_vec_scalar_test_neg_qp (_Float128);
5933 VSTDCNQP VSTDCNQP_DEPR1
5934
7e836079 5935[VEC_VSTDCNSP, scalar_test_neg_sp, __builtin_vec_scalar_test_neg_sp]
e2693a72
BS
5936 unsigned int __builtin_vec_scalar_test_neg_sp (float);
5937 VSTDCNSP VSTDCNSP_DEPR1
5938
7e836079 5939[VEC_VSTDCQP, scalar_test_data_class_qp, __builtin_vec_scalar_test_data_class_qp]
e2693a72
BS
5940 unsigned int __builtin_vec_scalar_test_data_class_qp (_Float128, const int);
5941 VSTDCQP VSTDCQP_DEPR1
5942
7e836079 5943[VEC_VSTDCSP, scalar_test_data_class_sp, __builtin_vec_scalar_test_data_class_sp]
e2693a72
BS
5944 unsigned int __builtin_vec_scalar_test_data_class_sp (float, const int);
5945 VSTDCSP VSTDCSP_DEPR1
5946
5947[VEC_VSUBCUQ, vec_vsubcuqP, __builtin_vec_vsubcuq]
5948 vsq __builtin_vec_vsubcuq (vsq, vsq);
5949 VSUBCUQ VSUBCUQ_DEPR1
5950 vuq __builtin_vec_vsubcuq (vuq, vuq);
5951 VSUBCUQ VSUBCUQ_DEPR2
5952
7e836079 5953[VEC_VSUBECUQ, vec_vsubecuq, __builtin_vec_vsubecuq]
e2693a72
BS
5954 vsq __builtin_vec_vsubecuq (vsq, vsq, vsq);
5955 VSUBECUQ VSUBECUQ_DEPR1
5956 vuq __builtin_vec_vsubecuq (vuq, vuq, vuq);
5957 VSUBECUQ VSUBECUQ_DEPR2
5958
7e836079 5959[VEC_VSUBEUQM, vec_vsubeuqm, __builtin_vec_vsubeuqm]
e2693a72
BS
5960 vsq __builtin_vec_vsubeuqm (vsq, vsq, vsq);
5961 VSUBEUQM VSUBEUQM_DEPR1
5962 vuq __builtin_vec_vsubeuqm (vuq, vuq, vuq);
5963 VSUBEUQM VSUBEUQM_DEPR2
5964
5965[VEC_VSUBFP, vec_vsubfp, __builtin_vec_vsubfp]
5966 vf __builtin_vec_vsubfp (vf, vf);
5967 VSUBFP VSUBFP_DEPR1
5968
5969[VEC_VSUBSBS, vec_vsubsbs, __builtin_vec_vsubsbs]
5970 vsc __builtin_vec_vsubsbs (vsc, vsc);
5971 VSUBSBS VSUBSBS_DEPR1
5972 vsc __builtin_vec_vsubsbs (vbc, vsc);
5973 VSUBSBS VSUBSBS_DEPR2
5974 vsc __builtin_vec_vsubsbs (vsc, vbc);
5975 VSUBSBS VSUBSBS_DEPR3
5976
5977[VEC_VSUBSHS, vec_vsubshs, __builtin_vec_vsubshs]
5978 vss __builtin_vec_vsubshs (vss, vss);
5979 VSUBSHS VSUBSHS_DEPR1
5980 vss __builtin_vec_vsubshs (vbs, vss);
5981 VSUBSHS VSUBSHS_DEPR2
5982 vss __builtin_vec_vsubshs (vss, vbs);
5983 VSUBSHS VSUBSHS_DEPR3
5984
5985[VEC_VSUBSWS, vec_vsubsws, __builtin_vec_vsubsws]
5986 vsi __builtin_vec_vsubsws (vsi, vsi);
5987 VSUBSWS VSUBSWS_DEPR1
5988 vsi __builtin_vec_vsubsws (vbi, vsi);
5989 VSUBSWS VSUBSWS_DEPR2
5990 vsi __builtin_vec_vsubsws (vsi, vbi);
5991 VSUBSWS VSUBSWS_DEPR3
5992
5993[VEC_VSUBUBM, vec_vsububm, __builtin_vec_vsububm]
5994 vsc __builtin_vec_vsububm (vsc, vsc);
5995 VSUBUBM VSUBUBM_DEPR1
5996 vuc __builtin_vec_vsububm (vsc, vuc);
5997 VSUBUBM VSUBUBM_DEPR2
5998 vuc __builtin_vec_vsububm (vuc, vsc);
5999 VSUBUBM VSUBUBM_DEPR3
6000 vuc __builtin_vec_vsububm (vuc, vuc);
6001 VSUBUBM VSUBUBM_DEPR4
6002 vsc __builtin_vec_vsububm (vbc, vsc);
6003 VSUBUBM VSUBUBM_DEPR5
6004 vsc __builtin_vec_vsububm (vsc, vbc);
6005 VSUBUBM VSUBUBM_DEPR6
6006 vuc __builtin_vec_vsububm (vbc, vuc);
6007 VSUBUBM VSUBUBM_DEPR7
6008 vuc __builtin_vec_vsububm (vuc, vbc);
6009 VSUBUBM VSUBUBM_DEPR8
6010
6011[VEC_VSUBUBS, vec_vsububs, __builtin_vec_vsububs]
6012 vsc __builtin_vec_vsububs (vsc, vsc);
6013 VSUBUBS VSUBUBS_DEPR1
6014 vsc __builtin_vec_vsububs (vbc, vsc);
6015 VSUBUBS VSUBUBS_DEPR2
6016 vsc __builtin_vec_vsububs (vsc, vbc);
6017 VSUBUBS VSUBUBS_DEPR3
6018 vuc __builtin_vec_vsububs (vsc, vuc);
6019 VSUBUBS VSUBUBS_DEPR4
6020 vuc __builtin_vec_vsububs (vuc, vsc);
6021 VSUBUBS VSUBUBS_DEPR5
6022 vuc __builtin_vec_vsububs (vuc, vuc);
6023 VSUBUBS VSUBUBS_DEPR6
6024 vuc __builtin_vec_vsububs (vbc, vuc);
6025 VSUBUBS VSUBUBS_DEPR7
6026 vuc __builtin_vec_vsububs (vuc, vbc);
6027 VSUBUBS VSUBUBS_DEPR8
6028
7e836079 6029[VEC_VSUBUDM, vec_vsubudm, __builtin_vec_vsubudm]
e2693a72
BS
6030 vsll __builtin_vec_vsubudm (vbll, vsll);
6031 VSUBUDM VSUBUDM_DEPR1
6032 vsll __builtin_vec_vsubudm (vsll, vbll);
6033 VSUBUDM VSUBUDM_DEPR2
6034 vsll __builtin_vec_vsubudm (vsll, vsll);
6035 VSUBUDM VSUBUDM_DEPR3
6036 vull __builtin_vec_vsubudm (vbll, vull);
6037 VSUBUDM VSUBUDM_DEPR4
6038 vull __builtin_vec_vsubudm (vull, vbll);
6039 VSUBUDM VSUBUDM_DEPR5
6040 vull __builtin_vec_vsubudm (vull, vull);
6041 VSUBUDM VSUBUDM_DEPR6
6042
6043[VEC_VSUBUHM, vec_vsubuhm, __builtin_vec_vsubuhm]
6044 vss __builtin_vec_vsubuhm (vss, vss);
6045 VSUBUHM VUSBUHM_DEPR1
6046 vus __builtin_vec_vsubuhm (vss, vus);
6047 VSUBUHM VUSBUHM_DEPR2
6048 vus __builtin_vec_vsubuhm (vus, vss);
6049 VSUBUHM VUSBUHM_DEPR3
6050 vus __builtin_vec_vsubuhm (vus, vus);
6051 VSUBUHM VUSBUHM_DEPR4
6052 vss __builtin_vec_vsubuhm (vbs, vss);
6053 VSUBUHM VUSBUHM_DEPR5
6054 vss __builtin_vec_vsubuhm (vss, vbs);
6055 VSUBUHM VUSBUHM_DEPR6
6056 vus __builtin_vec_vsubuhm (vbs, vus);
6057 VSUBUHM VUSBUHM_DEPR7
6058 vus __builtin_vec_vsubuhm (vus, vbs);
6059 VSUBUHM VUSBUHM_DEPR8
6060
6061[VEC_VSUBUHS, vec_vsubuhs, __builtin_vec_vsubuhs]
6062 vus __builtin_vec_vsubuhs (vss, vus);
6063 VSUBUHS VSUBUHS_DEPR1
6064 vus __builtin_vec_vsubuhs (vus, vss);
6065 VSUBUHS VSUBUHS_DEPR2
6066 vus __builtin_vec_vsubuhs (vus, vus);
6067 VSUBUHS VSUBUHS_DEPR3
6068 vus __builtin_vec_vsubuhs (vbs, vus);
6069 VSUBUHS VSUBUHS_DEPR4
6070 vus __builtin_vec_vsubuhs (vus, vbs);
6071 VSUBUHS VSUBUHS_DEPR5
6072
7e836079 6073[VEC_VSUBUQM, vec_vsubuqm, __builtin_vec_vsubuqm]
e2693a72
BS
6074 vsq __builtin_vec_vsubuqm (vsq, vsq);
6075 VSUBUQM VSUBUQM_DEPR1
6076 vuq __builtin_vec_vsubuqm (vuq, vuq);
6077 VSUBUQM VSUBUQM_DEPR2
6078
6079[VEC_VSUBUWM, vec_vsubuwm, __builtin_vec_vsubuwm]
6080 vsi __builtin_vec_vsubuwm (vbi, vsi);
6081 VSUBUWM VSUBUWM_DEPR1
6082 vsi __builtin_vec_vsubuwm (vsi, vbi);
6083 VSUBUWM VSUBUWM_DEPR2
6084 vui __builtin_vec_vsubuwm (vbi, vui);
6085 VSUBUWM VSUBUWM_DEPR3
6086 vui __builtin_vec_vsubuwm (vui, vbi);
6087 VSUBUWM VSUBUWM_DEPR4
6088 vsi __builtin_vec_vsubuwm (vsi, vsi);
6089 VSUBUWM VSUBUWM_DEPR5
6090 vui __builtin_vec_vsubuwm (vsi, vui);
6091 VSUBUWM VSUBUWM_DEPR6
6092 vui __builtin_vec_vsubuwm (vui, vsi);
6093 VSUBUWM VSUBUWM_DEPR7
6094 vui __builtin_vec_vsubuwm (vui, vui);
6095 VSUBUWM VSUBUWM_DEPR8
6096
6097[VEC_VSUBUWS, vec_vsubuws, __builtin_vec_vsubuws]
6098 vui __builtin_vec_vsubuws (vsi, vui);
6099 VSUBUWS VSUBUWS_DEPR1
6100 vui __builtin_vec_vsubuws (vui, vsi);
6101 VSUBUWS VSUBUWS_DEPR2
6102 vui __builtin_vec_vsubuws (vui, vui);
6103 VSUBUWS VSUBUWS_DEPR3
6104 vui __builtin_vec_vsubuws (vbi, vui);
6105 VSUBUWS VSUBUWS_DEPR4
6106 vui __builtin_vec_vsubuws (vui, vbi);
6107 VSUBUWS VSUBUWS_DEPR5
6108
6109[VEC_VSUM4SBS, vec_vsum4sbs, __builtin_vec_vsum4sbs]
6110 vsi __builtin_vec_vsum4sbs (vsc, vsi);
6111 VSUM4SBS VSUM4SBS_DEPR1
6112
6113[VEC_VSUM4SHS, vec_vsum4shs, __builtin_vec_vsum4shs]
6114 vsi __builtin_vec_vsum4shs (vss, vsi);
6115 VSUM4SHS VSUM4SHS_DEPR1
6116
6117[VEC_VSUM4UBS, vec_vsum4ubs, __builtin_vec_vsum4ubs]
6118 vui __builtin_vec_vsum4ubs (vuc, vui);
6119 VSUM4UBS VSUM4UBS_DEPR1
6120
7e836079 6121[VEC_VTDCDP, vec_test_data_class_dp, __builtin_vec_test_data_class_dp]
e2693a72
BS
6122 vbll __builtin_vec_test_data_class_dp (vd, const int);
6123 VTDCDP VTDCDP_DEPR1
6124
7e836079 6125[VEC_VTDCSP, vec_test_data_class_sp, __builtin_vec_test_data_class_sp]
e2693a72
BS
6126 vbi __builtin_vec_test_data_class_sp (vf, const int);
6127 VTDCSP VTDCSP_DEPR1
6128
6129[VEC_UNS_DOUBLEE, vec_uns_doublee, __builtin_vec_uns_doublee]
6130 vd __builtin_vec_uns_doublee (vui);
6131 UNS_DOUBLEE_V4SI UNS_DOUBLEE_DEPR1
6132
6133[VEC_UNS_DOUBLEH, vec_uns_doubleh, __builtin_vec_uns_doubleh]
6134 vd __builtin_vec_uns_doubleh (vui);
6135 UNS_DOUBLEH_V4SI UNS_DOUBLEH_DEPR1
6136
6137[VEC_UNS_DOUBLEL, vec_uns_doublel, __builtin_vec_uns_doublel]
6138 vd __builtin_vec_uns_doublel (vui);
6139 UNS_DOUBLEL_V4SI UNS_DOUBLEL_DEPR1
6140
6141[VEC_UNS_DOUBLEO, vec_uns_doubleo, __builtin_vec_uns_doubleo]
6142 vd __builtin_vec_uns_doubleo (vui);
6143 UNS_DOUBLEO_V4SI UNS_DOUBLEO_DEPR1
6144
6145[VEC_VUPKHPX, vec_vupkhpx, __builtin_vec_vupkhpx]
6146 vui __builtin_vec_vupkhpx (vus);
6147 VUPKHPX VUPKHPX_DEPR1
6148 vui __builtin_vec_vupkhpx (vp);
6149 VUPKHPX VUPKHPX_DEPR2
6150
6151[VEC_VUPKHSB, vec_vupkhsb, __builtin_vec_vupkhsb]
6152 vss __builtin_vec_vupkhsb (vsc);
6153 VUPKHSB VUPKHSB_DEPR1
6154 vbs __builtin_vec_vupkhsb (vbc);
6155 VUPKHSB VUPKHSB_DEPR2
6156
6157[VEC_VUPKHSH, vec_vupkhsh, __builtin_vec_vupkhsh]
6158 vsi __builtin_vec_vupkhsh (vss);
6159 VUPKHSH VUPKHSH_DEPR1
6160 vbi __builtin_vec_vupkhsh (vbs);
6161 VUPKHSH VUPKHSH_DEPR2
6162
7e836079 6163[VEC_VUPKHSW, vec_vupkhsw, __builtin_vec_vupkhsw]
e2693a72
BS
6164 vsll __builtin_vec_vupkhsw (vsi);
6165 VUPKHSW VUPKHSW_DEPR1
6166 vbll __builtin_vec_vupkhsw (vbi);
6167 VUPKHSW VUPKHSW_DEPR2
6168
6169[VEC_VUPKLPX, vec_vupklpx, __builtin_vec_vupklpx]
6170 vui __builtin_vec_vupklpx (vus);
6171 VUPKLPX VUPKLPX_DEPR1
6172 vui __builtin_vec_vupklpx (vp);
6173 VUPKLPX VUPKLPX_DEPR2
6174
6175[VEC_VUPKLSB, vec_vupklsb, __builtin_vec_vupklsb]
6176 vss __builtin_vec_vupklsb (vsc);
6177 VUPKLSB VUPKLSB_DEPR1
6178 vbs __builtin_vec_vupklsb (vbc);
6179 VUPKLSB VUPKLSB_DEPR2
6180
6181[VEC_VUPKLSH, vec_vupklsh, __builtin_vec_vupklsh]
6182 vsi __builtin_vec_vupklsh (vss);
6183 VUPKLSH VUPKLSH_DEPR1
6184 vbi __builtin_vec_vupklsh (vbs);
6185 VUPKLSH VUPKLSH_DEPR2
6186
7e836079 6187[VEC_VUPKLSW, vec_vupklsw, __builtin_vec_vupklsw]
e2693a72
BS
6188 vsll __builtin_vec_vupklsw (vsi);
6189 VUPKLSW VUPKLSW_DEPR1
6190 vbll __builtin_vec_vupklsw (vbi);
6191 VUPKLSW VUPKLSW_DEPR2
4be82f7f
MM
6192
6193[ADDF128_ODD, SKIP, __builtin_addf128_round_to_odd]
6194 long double __builtin_addf128_round_to_odd (long double, long double);
6195 ADDF128_ODD_TF
6196 _Float128 __builtin_addf128_round_to_odd (_Float128, _Float128);
6197 ADDF128_ODD_KF
6198
6199[DIVF128_ODD, SKIP, __builtin_divf128_round_to_odd]
6200 long double __builtin_divf128_round_to_odd (long double, long double);
6201 DIVF128_ODD_TF
6202 _Float128 __builtin_divf128_round_to_odd (_Float128, _Float128);
6203 DIVF128_ODD_KF
6204
6205[FMAF128_ODD, SKIP, __builtin_fmaf128_round_to_odd]
6206 long double __builtin_fmaf128_round_to_odd (long double, long double, \
6207 long double);
6208 FMAF128_ODD_TF
6209 _Float128 __builtin_fmaf128_round_to_odd (_Float128, _Float128, \
6210 _Float128);
6211 FMAF128_ODD_KF
6212
6213[MULF128_ODD, SKIP, __builtin_mulf128_round_to_odd]
6214 long double __builtin_mulf128_round_to_odd (long double, long double);
6215 MULF128_ODD_TF
6216 _Float128 __builtin_mulf128_round_to_odd (_Float128, _Float128);
6217 MULF128_ODD_KF
6218
6219[SQRTF128_ODD, SKIP, __builtin_sqrtf128_round_to_odd]
6220 long double __builtin_sqrtf128_round_to_odd (long double);
6221 SQRTF128_ODD_TF
6222 _Float128 __builtin_sqrtf128_round_to_odd (_Float128);
6223 SQRTF128_ODD_KF
6224
6225[SUBF128_ODD, SKIP, __builtin_subf128_round_to_odd]
6226 long double __builtin_subf128_round_to_odd (long double, long double);
6227 SUBF128_ODD_TF
6228 _Float128 __builtin_subf128_round_to_odd (_Float128, _Float128);
6229 SUBF128_ODD_KF
6230
6231[TRUNCF128_ODD, SKIP, __builtin_truncf128_round_to_odd]
6232 long double __builtin_truncf128_round_to_odd (long double);
6233 TRUNCF128_ODD_TF
6234 _Float128 __builtin_truncf128_round_to_odd (_Float128);
6235 TRUNCF128_ODD_KF
This page took 1.009642 seconds and 5 git commands to generate.