1 ; Overloaded built-in functions for PowerPC.
2 ; Copyright (C) 2020-2022 Free Software Foundation, Inc.
3 ; Contributed by Bill Schmidt, IBM <wschmidt@linux.ibm.com>
5 ; This file is part of GCC.
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
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
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/>.
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
26 ; [<overload-id>, <abi-name>, <builtin-name>[[, <ifdef>]] ]
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.
37 ; Each function entry has two lines. The first line is a prototype line.
38 ; See rs6000-builtin-new.def for a description of the prototype line.
39 ; A prototype line in this file differs in that it doesn't have an
40 ; optional [kind] token:
42 ; <return-type> <internal-name> (<argument-list>);
44 ; The second line contains the <bif-id> that this particular instance of
45 ; the overloaded function maps to. It must match a token that appears in
46 ; rs6000-builtin-new.def. Optionally, a second token may appear. If only
47 ; one token is on the line, it is also used to build the unique identifier
48 ; for the overloaded function. If a second token is present, the second
49 ; token is used instead for this purpose. This is necessary in cases
50 ; where a built-in function accepts more than one type signature. It is
51 ; common to have a built-in function that, for example, specifies a
52 ; "vector signed char" argument, but accepts "vector unsigned char" and
53 ; "vector bool char" as well because only the mode matters. Note that
54 ; the overload resolution mechanism has always handled these cases by
55 ; performing fold_convert on vector arguments to hide type mismatches,
56 ; and it will continue to do so.
58 ; As a concrete example, __builtin_altivec_mtvscr uses an opaque argument
59 ; type for the source operand. Its built-in function id is MTVSCR. The
60 ; overloaded function __builtin_vec_mtvscr takes a variety of specific
61 ; types, but not all vector types. Each of these maps to the same
62 ; __builtin_altivec_mtvscr built-in function, but the overload ID must
63 ; be unique, so we must specify the second token as shown here.
65 ;[VEC_MTVSCR, vec_mtvscr, __builtin_vec_mtvscr]
66 ; void __builtin_vec_mtvscr (vbc);
68 ; void __builtin_vec_mtvscr (vsc);
72 ; Blank lines may be used as desired in this file between the lines as
73 ; defined above; that is, you can introduce as many extra newlines as you
74 ; like after a required newline, but nowhere else. Lines beginning with
75 ; a semicolon are also treated as blank lines.
78 [BCDADD, __builtin_bcdadd, __builtin_vec_bcdadd]
79 vsq __builtin_vec_bcdadd (vsq, vsq, const int);
81 vuc __builtin_vec_bcdadd (vuc, vuc, const int);
84 [BCDADD_EQ, __builtin_bcdadd_eq, __builtin_vec_bcdadd_eq]
85 signed int __builtin_vec_bcdadd_eq (vsq, vsq, const int);
87 signed int __builtin_vec_bcdadd_eq (vuc, vuc, const int);
90 [BCDADD_GT, __builtin_bcdadd_gt, __builtin_vec_bcdadd_gt]
91 signed int __builtin_vec_bcdadd_gt (vsq, vsq, const int);
93 signed int __builtin_vec_bcdadd_gt (vuc, vuc, const int);
96 [BCDADD_LT, __builtin_bcdadd_lt, __builtin_vec_bcdadd_lt]
97 signed int __builtin_vec_bcdadd_lt (vsq, vsq, const int);
99 signed int __builtin_vec_bcdadd_lt (vuc, vuc, const int);
102 [BCDADD_OV, __builtin_bcdadd_ov, __builtin_vec_bcdadd_ov]
103 signed int __builtin_vec_bcdadd_ov (vsq, vsq, const int);
105 signed int __builtin_vec_bcdadd_ov (vuc, vuc, const int);
108 [BCDDIV10, __builtin_bcddiv10, __builtin_vec_bcddiv10]
109 vuc __builtin_vec_bcddiv10 (vuc);
112 [BCDINVALID, __builtin_bcdinvalid, __builtin_vec_bcdinvalid]
113 signed int __builtin_vec_bcdinvalid (vsq);
115 signed int __builtin_vec_bcdinvalid (vuc);
118 [BCDMUL10, __builtin_bcdmul10, __builtin_vec_bcdmul10]
119 vuc __builtin_vec_bcdmul10 (vuc);
122 [BCDSUB, __builtin_bcdsub, __builtin_vec_bcdsub]
123 vsq __builtin_vec_bcdsub (vsq, vsq, const int);
125 vuc __builtin_vec_bcdsub (vuc, vuc, const int);
128 [BCDSUB_EQ, __builtin_bcdsub_eq, __builtin_vec_bcdsub_eq]
129 signed int __builtin_vec_bcdsub_eq (vsq, vsq, const int);
131 signed int __builtin_vec_bcdsub_eq (vuc, vuc, const int);
134 [BCDSUB_GE, __builtin_bcdsub_ge, __builtin_vec_bcdsub_ge]
135 signed int __builtin_vec_bcdsub_ge (vsq, vsq, const int);
137 signed int __builtin_vec_bcdsub_ge (vuc, vuc, const int);
140 [BCDSUB_GT, __builtin_bcdsub_gt, __builtin_vec_bcdsub_gt]
141 signed int __builtin_vec_bcdsub_gt (vsq, vsq, const int);
143 signed int __builtin_vec_bcdsub_gt (vuc, vuc, const int);
146 [BCDSUB_LE, __builtin_bcdsub_le, __builtin_vec_bcdsub_le]
147 signed int __builtin_vec_bcdsub_le (vsq, vsq, const int);
149 signed int __builtin_vec_bcdsub_le (vuc, vuc, const int);
152 [BCDSUB_LT, __builtin_bcdsub_lt, __builtin_vec_bcdsub_lt]
153 signed int __builtin_vec_bcdsub_lt (vsq, vsq, const int);
155 signed int __builtin_vec_bcdsub_lt (vuc, vuc, const int);
158 [BCDSUB_OV, __builtin_bcdsub_ov, __builtin_vec_bcdsub_ov]
159 signed int __builtin_vec_bcdsub_ov (vsq, vsq, const int);
161 signed int __builtin_vec_bcdsub_ov (vuc, vuc, const int);
164 [BCD2DFP, __builtin_bcd2dfp, __builtin_vec_denb2dfp]
165 _Decimal128 __builtin_vec_denb2dfp (vuc);
168 [CRYPTO_PERMXOR, SKIP, __builtin_crypto_vpermxor]
169 vuc __builtin_crypto_vpermxor (vuc, vuc, vuc);
171 vus __builtin_crypto_vpermxor (vus, vus, vus);
173 vui __builtin_crypto_vpermxor (vui, vui, vui);
175 vull __builtin_crypto_vpermxor (vull, vull, vull);
178 [CRYPTO_PMSUM, SKIP, __builtin_crypto_vpmsum]
179 vuc __builtin_crypto_vpmsum (vuc, vuc);
181 vus __builtin_crypto_vpmsum (vus, vus);
183 vui __builtin_crypto_vpmsum (vui, vui);
185 vull __builtin_crypto_vpmsum (vull, vull);
188 [SCAL_CMPB, SKIP, __builtin_cmpb]
189 unsigned int __builtin_cmpb (unsigned int, unsigned int);
191 unsigned long long __builtin_cmpb (unsigned long long, unsigned long long);
194 [VEC_ABS, vec_abs, __builtin_vec_abs]
195 vsc __builtin_vec_abs (vsc);
197 vss __builtin_vec_abs (vss);
199 vsi __builtin_vec_abs (vsi);
201 vsll __builtin_vec_abs (vsll);
203 vf __builtin_vec_abs (vf);
205 vd __builtin_vec_abs (vd);
208 [VEC_ABSD, vec_absd, __builtin_vec_vadu, _ARCH_PWR9]
209 vuc __builtin_vec_vadu (vuc, vuc);
211 vus __builtin_vec_vadu (vus, vus);
213 vui __builtin_vec_vadu (vui, vui);
216 [VEC_ABSS, vec_abss, __builtin_vec_abss]
217 vsc __builtin_vec_abss (vsc);
219 vss __builtin_vec_abss (vss);
221 vsi __builtin_vec_abss (vsi);
224 [VEC_ADD, vec_add, __builtin_vec_add]
225 vsc __builtin_vec_add (vsc, vsc);
227 vuc __builtin_vec_add (vuc, vuc);
229 vss __builtin_vec_add (vss, vss);
231 vus __builtin_vec_add (vus, vus);
233 vsi __builtin_vec_add (vsi, vsi);
235 vui __builtin_vec_add (vui, vui);
237 vsll __builtin_vec_add (vsll, vsll);
239 vull __builtin_vec_add (vull, vull);
241 vsq __builtin_vec_add (vsq, vsq);
243 vuq __builtin_vec_add (vuq, vuq);
245 vf __builtin_vec_add (vf, vf);
247 vd __builtin_vec_add (vd, vd);
249 ; The following variants are deprecated.
250 vsc __builtin_vec_add (vbc, vsc);
251 VADDUBM VADDUBM_VBC_VSC
252 vsc __builtin_vec_add (vsc, vbc);
253 VADDUBM VADDUBM_VSC_VBC
254 vuc __builtin_vec_add (vbc, vuc);
255 VADDUBM VADDUBM_VBC_VUC
256 vuc __builtin_vec_add (vuc, vbc);
257 VADDUBM VADDUBM_VUC_VBC
258 vss __builtin_vec_add (vbs, vss);
259 VADDUHM VADDUHM_VBS_VSS
260 vss __builtin_vec_add (vss, vbs);
261 VADDUHM VADDUHM_VSS_VBS
262 vus __builtin_vec_add (vbs, vus);
263 VADDUHM VADDUHM_VBS_VUS
264 vus __builtin_vec_add (vus, vbs);
265 VADDUHM VADDUHM_VUS_VBS
266 vsi __builtin_vec_add (vbi, vsi);
267 VADDUWM VADDUWM_VBI_VSI
268 vsi __builtin_vec_add (vsi, vbi);
269 VADDUWM VADDUWM_VSI_VBI
270 vui __builtin_vec_add (vbi, vui);
271 VADDUWM VADDUWM_VBI_VUI
272 vui __builtin_vec_add (vui, vbi);
273 VADDUWM VADDUWM_VUI_VBI
274 vsll __builtin_vec_add (vbll, vsll);
275 VADDUDM VADDUDM_VBLL_VSLL
276 vsll __builtin_vec_add (vsll, vbll);
277 VADDUDM VADDUDM_VSLL_VBLL
278 vull __builtin_vec_add (vbll, vull);
279 VADDUDM VADDUDM_VBLL_VULL
280 vull __builtin_vec_add (vull, vbll);
281 VADDUDM VADDUDM_VULL_VBLL
283 [VEC_ADDC, vec_addc, __builtin_vec_addc]
284 vsi __builtin_vec_addc (vsi, vsi);
286 vui __builtin_vec_addc (vui, vui);
288 vsq __builtin_vec_addc (vsq, vsq);
290 vuq __builtin_vec_addc (vuq, vuq);
293 ; TODO: Note that the entry for VEC_ADDE currently gets ignored in
294 ; altivec_resolve_overloaded_builtin. Revisit whether we can remove
295 ; that. We still need to register the legal builtin forms here.
296 [VEC_ADDE, vec_adde, __builtin_vec_adde]
297 vsq __builtin_vec_adde (vsq, vsq, vsq);
298 VADDEUQM VADDEUQM_VSQ
299 vuq __builtin_vec_adde (vuq, vuq, vuq);
300 VADDEUQM VADDEUQM_VUQ
302 ; TODO: Note that the entry for VEC_ADDEC currently gets ignored in
303 ; altivec_resolve_overloaded_builtin. Revisit whether we can remove
304 ; that. We still need to register the legal builtin forms here.
305 [VEC_ADDEC, vec_addec, __builtin_vec_addec]
306 vsq __builtin_vec_addec (vsq, vsq, vsq);
307 VADDECUQ VADDECUQ_VSQ
308 vuq __builtin_vec_addec (vuq, vuq, vuq);
309 VADDECUQ VADDECUQ_VUQ
311 [VEC_ADDS, vec_adds, __builtin_vec_adds]
312 vuc __builtin_vec_adds (vuc, vuc);
314 vsc __builtin_vec_adds (vsc, vsc);
316 vus __builtin_vec_adds (vus, vus);
318 vss __builtin_vec_adds (vss, vss);
320 vui __builtin_vec_adds (vui, vui);
322 vsi __builtin_vec_adds (vsi, vsi);
324 ; The following variants are deprecated.
325 vuc __builtin_vec_adds (vbc, vuc);
327 vuc __builtin_vec_adds (vuc, vbc);
329 vsc __builtin_vec_adds (vbc, vsc);
331 vsc __builtin_vec_adds (vsc, vbc);
333 vus __builtin_vec_adds (vbs, vus);
335 vus __builtin_vec_adds (vus, vbs);
337 vss __builtin_vec_adds (vbs, vss);
339 vss __builtin_vec_adds (vss, vbs);
341 vui __builtin_vec_adds (vbi, vui);
343 vui __builtin_vec_adds (vui, vbi);
345 vsi __builtin_vec_adds (vbi, vsi);
347 vsi __builtin_vec_adds (vsi, vbi);
350 [VEC_AND, vec_and, __builtin_vec_and]
351 vsc __builtin_vec_and (vsc, vsc);
353 vuc __builtin_vec_and (vuc, vuc);
354 VAND_V16QI_UNS VAND_VUC
355 vbc __builtin_vec_and (vbc, vbc);
356 VAND_V16QI_UNS VAND_VBC
357 vss __builtin_vec_and (vss, vss);
359 vus __builtin_vec_and (vus, vus);
360 VAND_V8HI_UNS VAND_VUS
361 vbs __builtin_vec_and (vbs, vbs);
362 VAND_V8HI_UNS VAND_VBS
363 vsi __builtin_vec_and (vsi, vsi);
365 vui __builtin_vec_and (vui, vui);
366 VAND_V4SI_UNS VAND_VUI
367 vbi __builtin_vec_and (vbi, vbi);
368 VAND_V4SI_UNS VAND_VBI
369 vsll __builtin_vec_and (vsll, vsll);
371 vull __builtin_vec_and (vull, vull);
372 VAND_V2DI_UNS VAND_VULL
373 vbll __builtin_vec_and (vbll, vbll);
374 VAND_V2DI_UNS VAND_VBLL
375 vf __builtin_vec_and (vf, vf);
377 vd __builtin_vec_and (vd, vd);
379 ; The following variants are deprecated.
380 vsc __builtin_vec_and (vsc, vbc);
381 VAND_V16QI VAND_VSC_VBC
382 vsc __builtin_vec_and (vbc, vsc);
383 VAND_V16QI VAND_VBC_VSC
384 vuc __builtin_vec_and (vuc, vbc);
385 VAND_V16QI_UNS VAND_VUC_VBC
386 vuc __builtin_vec_and (vbc, vuc);
387 VAND_V16QI_UNS VAND_VBC_VUC
388 vss __builtin_vec_and (vss, vbs);
389 VAND_V8HI VAND_VSS_VBS
390 vss __builtin_vec_and (vbs, vss);
391 VAND_V8HI VAND_VBS_VSS
392 vus __builtin_vec_and (vus, vbs);
393 VAND_V8HI_UNS VAND_VUS_VBS
394 vus __builtin_vec_and (vbs, vus);
395 VAND_V8HI_UNS VAND_VBS_VUS
396 vsi __builtin_vec_and (vsi, vbi);
397 VAND_V4SI VAND_VSI_VBI
398 vsi __builtin_vec_and (vbi, vsi);
399 VAND_V4SI VAND_VBI_VSI
400 vui __builtin_vec_and (vui, vbi);
401 VAND_V4SI_UNS VAND_VUI_VBI
402 vui __builtin_vec_and (vbi, vui);
403 VAND_V4SI_UNS VAND_VBI_VUI
404 vsll __builtin_vec_and (vsll, vbll);
405 VAND_V2DI VAND_VSLL_VBLL
406 vsll __builtin_vec_and (vbll, vsll);
407 VAND_V2DI VAND_VBLL_VSLL
408 vull __builtin_vec_and (vull, vbll);
409 VAND_V2DI_UNS VAND_VULL_VBLL
410 vull __builtin_vec_and (vbll, vull);
411 VAND_V2DI_UNS VAND_VBLL_VULL
412 vf __builtin_vec_and (vf, vbi);
413 VAND_V4SF VAND_VF_VBI
414 vf __builtin_vec_and (vbi, vf);
415 VAND_V4SF VAND_VBI_VF
416 vd __builtin_vec_and (vd, vbll);
417 VAND_V2DF VAND_VD_VBLL
418 vd __builtin_vec_and (vbll, vd);
419 VAND_V2DF VAND_VBLL_VD
421 [VEC_ANDC, vec_andc, __builtin_vec_andc]
422 vbc __builtin_vec_andc (vbc, vbc);
423 VANDC_V16QI_UNS VANDC_VBC
424 vsc __builtin_vec_andc (vsc, vsc);
426 vuc __builtin_vec_andc (vuc, vuc);
427 VANDC_V16QI_UNS VANDC_VUC
428 vbs __builtin_vec_andc (vbs, vbs);
429 VANDC_V8HI_UNS VANDC_VBS
430 vss __builtin_vec_andc (vss, vss);
432 vus __builtin_vec_andc (vus, vus);
433 VANDC_V8HI_UNS VANDC_VUS
434 vbi __builtin_vec_andc (vbi, vbi);
435 VANDC_V4SI_UNS VANDC_VBI
436 vsi __builtin_vec_andc (vsi, vsi);
438 vui __builtin_vec_andc (vui, vui);
439 VANDC_V4SI_UNS VANDC_VUI
440 vbll __builtin_vec_andc (vbll, vbll);
441 VANDC_V2DI_UNS VANDC_VBLL
442 vsll __builtin_vec_andc (vsll, vsll);
444 vull __builtin_vec_andc (vull, vull);
445 VANDC_V2DI_UNS VANDC_VULL
446 vf __builtin_vec_andc (vf, vf);
448 vd __builtin_vec_andc (vd, vd);
450 ; The following variants are deprecated.
451 vsc __builtin_vec_andc (vsc, vbc);
452 VANDC_V16QI VANDC_VSC_VBC
453 vsc __builtin_vec_andc (vbc, vsc);
454 VANDC_V16QI VANDC_VBC_VSC
455 vuc __builtin_vec_andc (vuc, vbc);
456 VANDC_V16QI_UNS VANDC_VUC_VBC
457 vuc __builtin_vec_andc (vbc, vuc);
458 VANDC_V16QI_UNS VANDC_VBC_VUC
459 vss __builtin_vec_andc (vss, vbs);
460 VANDC_V8HI VANDC_VSS_VBS
461 vss __builtin_vec_andc (vbs, vss);
462 VANDC_V8HI VANDC_VBS_VSS
463 vus __builtin_vec_andc (vus, vbs);
464 VANDC_V8HI_UNS VANDC_VUS_VBS
465 vus __builtin_vec_andc (vbs, vus);
466 VANDC_V8HI_UNS VANDC_VBS_VUS
467 vsi __builtin_vec_andc (vsi, vbi);
468 VANDC_V4SI VANDC_VSI_VBI
469 vsi __builtin_vec_andc (vbi, vsi);
470 VANDC_V4SI VANDC_VBI_VSI
471 vui __builtin_vec_andc (vui, vbi);
472 VANDC_V4SI_UNS VANDC_VUI_VBI
473 vui __builtin_vec_andc (vbi, vui);
474 VANDC_V4SI_UNS VANDC_VBI_VUI
475 vsll __builtin_vec_andc (vsll, vbll);
476 VANDC_V2DI VANDC_VSLL_VBLL
477 vsll __builtin_vec_andc (vbll, vsll);
478 VANDC_V2DI VANDC_VBLL_VSLL
479 vull __builtin_vec_andc (vull, vbll);
480 VANDC_V2DI_UNS VANDC_VULL_VBLL
481 vull __builtin_vec_andc (vbll, vull);
482 VANDC_V2DI_UNS VANDC_VBLL_VULL
483 vf __builtin_vec_andc (vf, vbi);
484 VANDC_V4SF VANDC_VF_VBI
485 vf __builtin_vec_andc (vbi, vf);
486 VANDC_V4SF VANDC_VBI_VF
487 vd __builtin_vec_andc (vd, vbll);
488 VANDC_V2DF VANDC_VD_VBLL
489 vd __builtin_vec_andc (vbll, vd);
490 VANDC_V2DF VANDC_VBLL_VD
492 [VEC_AVG, vec_avg, __builtin_vec_avg]
493 vsc __builtin_vec_avg (vsc, vsc);
495 vuc __builtin_vec_avg (vuc, vuc);
497 vss __builtin_vec_avg (vss, vss);
499 vus __builtin_vec_avg (vus, vus);
501 vsi __builtin_vec_avg (vsi, vsi);
503 vui __builtin_vec_avg (vui, vui);
506 [VEC_BLENDV, vec_blendv, __builtin_vec_xxblend, _ARCH_PWR10]
507 vsc __builtin_vec_xxblend (vsc, vsc, vuc);
508 VXXBLEND_V16QI VXXBLEND_VSC
509 vuc __builtin_vec_xxblend (vuc, vuc, vuc);
510 VXXBLEND_V16QI VXXBLEND_VUC
511 vss __builtin_vec_xxblend (vss, vss, vus);
512 VXXBLEND_V8HI VXXBLEND_VSS
513 vus __builtin_vec_xxblend (vus, vus, vus);
514 VXXBLEND_V8HI VXXBLEND_VUS
515 vsi __builtin_vec_xxblend (vsi, vsi, vui);
516 VXXBLEND_V4SI VXXBLEND_VSI
517 vui __builtin_vec_xxblend (vui, vui, vui);
518 VXXBLEND_V4SI VXXBLEND_VUI
519 vsll __builtin_vec_xxblend (vsll, vsll, vull);
520 VXXBLEND_V2DI VXXBLEND_VSLL
521 vull __builtin_vec_xxblend (vull, vull, vull);
522 VXXBLEND_V2DI VXXBLEND_VULL
523 vf __builtin_vec_xxblend (vf, vf, vui);
525 vd __builtin_vec_xxblend (vd, vd, vull);
528 [VEC_BPERM, vec_bperm, __builtin_vec_vbperm_api, _ARCH_PWR8]
529 vull __builtin_vec_vbperm_api (vull, vuc);
531 vull __builtin_vec_vbperm_api (vuq, vuc);
533 vuc __builtin_vec_vbperm_api (vuc, vuc);
535 vsc __builtin_vec_vbperm_api (vsc, vsc);
538 [VEC_CEIL, vec_ceil, __builtin_vec_ceil]
539 vf __builtin_vec_ceil (vf);
541 vd __builtin_vec_ceil (vd);
544 [VEC_CFUGE, vec_cfuge, __builtin_vec_cfuge, _ARCH_PWR10]
545 vull __builtin_vec_cfuge (vull, vull);
548 [VEC_CIPHER_BE, vec_cipher_be, __builtin_vec_vcipher_be, _ARCH_PWR8]
549 vuc __builtin_vec_vcipher_be (vuc, vuc);
552 [VEC_CIPHERLAST_BE, vec_cipherlast_be, __builtin_vec_vcipherlast_be, _ARCH_PWR8]
553 vuc __builtin_vec_vcipherlast_be (vuc, vuc);
556 [VEC_CLRL, vec_clrl, __builtin_vec_clrl, _ARCH_PWR10]
557 vsc __builtin_vec_clrl (vsc, unsigned int);
559 vuc __builtin_vec_clrl (vuc, unsigned int);
562 [VEC_CLRR, vec_clrr, __builtin_vec_clrr, _ARCH_PWR10]
563 vsc __builtin_vec_clrr (vsc, unsigned int);
565 vuc __builtin_vec_clrr (vuc, unsigned int);
568 ; We skip generating a #define because of the C-versus-C++ complexity
569 ; in altivec.h. Look there for the template-y details.
570 [VEC_CMPAE_P, SKIP, __builtin_vec_vcmpae_p]
571 signed int __builtin_vec_vcmpae_p (vsc, vsc);
572 VCMPAEB_P VCMPAEB_VSC_P
573 signed int __builtin_vec_vcmpae_p (vuc, vuc);
574 VCMPAEB_P VCMPAEB_VUC_P
575 signed int __builtin_vec_vcmpae_p (vbc, vbc);
576 VCMPAEB_P VCMPAEB_VBC_P
577 signed int __builtin_vec_vcmpae_p (vss, vss);
578 VCMPAEH_P VCMPAEH_VSS_P
579 signed int __builtin_vec_vcmpae_p (vus, vus);
580 VCMPAEH_P VCMPAEH_VUS_P
581 signed int __builtin_vec_vcmpae_p (vbs, vbs);
582 VCMPAEH_P VCMPAEH_VBS_P
583 signed int __builtin_vec_vcmpae_p (vp, vp);
584 VCMPAEH_P VCMPAEH_VP_P
585 signed int __builtin_vec_vcmpae_p (vsi, vsi);
586 VCMPAEW_P VCMPAEW_VSI_P
587 signed int __builtin_vec_vcmpae_p (vui, vui);
588 VCMPAEW_P VCMPAEW_VUI_P
589 signed int __builtin_vec_vcmpae_p (vbi, vbi);
590 VCMPAEW_P VCMPAEW_VBI_P
591 signed int __builtin_vec_vcmpae_p (vsll, vsll);
592 VCMPAED_P VCMPAED_VSLL_P
593 signed int __builtin_vec_vcmpae_p (vull, vull);
594 VCMPAED_P VCMPAED_VULL_P
595 signed int __builtin_vec_vcmpae_p (vbll, vbll);
596 VCMPAED_P VCMPAED_VBLL_P
597 signed int __builtin_vec_vcmpae_p (vsq, vsq);
598 VCMPAET_P VCMPAET_VSQ_P
599 signed int __builtin_vec_vcmpae_p (vuq, vuq);
600 VCMPAET_P VCMPAET_VUQ_P
601 signed int __builtin_vec_vcmpae_p (vf, vf);
603 signed int __builtin_vec_vcmpae_p (vd, vd);
605 ; The following variants are deprecated.
606 signed int __builtin_vec_vcmpae_p (signed int, vbc, vuc);
607 VCMPAEB_P VCMPAEB_P_BU
608 signed int __builtin_vec_vcmpae_p (signed int, vuc, vbc);
609 VCMPAEB_P VCMPAEB_P_UB
610 signed int __builtin_vec_vcmpae_p (signed int, vbc, vsc);
611 VCMPAEB_P VCMPAEB_P_BS
612 signed int __builtin_vec_vcmpae_p (signed int, vsc, vbc);
613 VCMPAEB_P VCMPAEB_P_SB
614 signed int __builtin_vec_vcmpae_p (signed int, vbs, vus);
615 VCMPAEH_P VCMPAEH_P_BU
616 signed int __builtin_vec_vcmpae_p (signed int, vus, vbs);
617 VCMPAEH_P VCMPAEH_P_UB
618 signed int __builtin_vec_vcmpae_p (signed int, vbs, vss);
619 VCMPAEH_P VCMPAEH_P_BS
620 signed int __builtin_vec_vcmpae_p (signed int, vss, vbs);
621 VCMPAEH_P VCMPAEH_P_SB
622 signed int __builtin_vec_vcmpae_p (signed int, vbi, vui);
623 VCMPAEW_P VCMPAEW_P_BU
624 signed int __builtin_vec_vcmpae_p (signed int, vui, vbi);
625 VCMPAEW_P VCMPAEW_P_UB
626 signed int __builtin_vec_vcmpae_p (signed int, vbi, vsi);
627 VCMPAEW_P VCMPAEW_P_BS
628 signed int __builtin_vec_vcmpae_p (signed int, vsi, vbi);
629 VCMPAEW_P VCMPAEW_P_SB
630 signed int __builtin_vec_vcmpae_p (signed int, vbll, vull);
631 VCMPAED_P VCMPAED_P_BU
632 signed int __builtin_vec_vcmpae_p (signed int, vull, vbll);
633 VCMPAED_P VCMPAED_P_UB
634 signed int __builtin_vec_vcmpae_p (signed int, vbll, vsll);
635 VCMPAED_P VCMPAED_P_BS
636 signed int __builtin_vec_vcmpae_p (signed int, vbll, vsll);
637 VCMPAED_P VCMPAED_P_SB
639 [VEC_CMPB, vec_cmpb, __builtin_vec_cmpb]
640 vsi __builtin_vec_cmpb (vf, vf);
643 [VEC_CMPEQ, vec_cmpeq, __builtin_vec_cmpeq]
644 vbc __builtin_vec_cmpeq (vsc, vsc);
645 VCMPEQUB VCMPEQUB_VSC
646 vbc __builtin_vec_cmpeq (vuc, vuc);
647 VCMPEQUB VCMPEQUB_VUC
648 vbc __builtin_vec_cmpeq (vbc, vbc);
649 VCMPEQUB VCMPEQUB_VBC
650 vbs __builtin_vec_cmpeq (vss, vss);
651 VCMPEQUH VCMPEQUH_VSS
652 vbs __builtin_vec_cmpeq (vus, vus);
653 VCMPEQUH VCMPEQUH_VUS
654 vbs __builtin_vec_cmpeq (vbs, vbs);
655 VCMPEQUH VCMPEQUH_VBS
656 vbi __builtin_vec_cmpeq (vsi, vsi);
657 VCMPEQUW VCMPEQUW_VSI
658 vbi __builtin_vec_cmpeq (vui, vui);
659 VCMPEQUW VCMPEQUW_VUI
660 vbi __builtin_vec_cmpeq (vbi, vbi);
661 VCMPEQUW VCMPEQUW_VBI
662 vbll __builtin_vec_cmpeq (vsll, vsll);
663 VCMPEQUD VCMPEQUD_VSLL
664 vbll __builtin_vec_cmpeq (vull, vull);
665 VCMPEQUD VCMPEQUD_VULL
666 vbll __builtin_vec_cmpeq (vbll, vbll);
667 VCMPEQUD VCMPEQUD_VBLL
668 vbq __builtin_vec_cmpeq (vsq, vsq);
669 VCMPEQUT VCMPEQUT_VSQ
670 vbq __builtin_vec_cmpeq (vuq, vuq);
671 VCMPEQUT VCMPEQUT_VUQ
672 vbi __builtin_vec_cmpeq (vf, vf);
674 vbll __builtin_vec_cmpeq (vd, vd);
677 ; We skip generating a #define because of the C-versus-C++ complexity
678 ; in altivec.h. Look there for the template-y details.
679 [VEC_CMPEQ_P, SKIP, __builtin_vec_vcmpeq_p]
680 signed int __builtin_vec_vcmpeq_p (signed int, vuc, vuc);
681 VCMPEQUB_P VCMPEQUB_PU
682 signed int __builtin_vec_vcmpeq_p (signed int, vsc, vsc);
683 VCMPEQUB_P VCMPEQUB_PS
684 signed int __builtin_vec_vcmpeq_p (signed int, vbc, vbc);
685 VCMPEQUB_P VCMPEQUB_PB
686 signed int __builtin_vec_vcmpeq_p (signed int, vus, vus);
687 VCMPEQUH_P VCMPEQUH_PU
688 signed int __builtin_vec_vcmpeq_p (signed int, vss, vss);
689 VCMPEQUH_P VCMPEQUH_PS
690 signed int __builtin_vec_vcmpeq_p (signed int, vbs, vbs);
691 VCMPEQUH_P VCMPEQUH_PB
692 signed int __builtin_vec_vcmpeq_p (signed int, vp, vp);
693 VCMPEQUH_P VCMPEQUH_PP
694 signed int __builtin_vec_vcmpeq_p (signed int, vui, vui);
695 VCMPEQUW_P VCMPEQUW_PU
696 signed int __builtin_vec_vcmpeq_p (signed int, vsi, vsi);
697 VCMPEQUW_P VCMPEQUW_PS
698 signed int __builtin_vec_vcmpeq_p (signed int, vbi, vbi);
699 VCMPEQUW_P VCMPEQUW_PB
700 signed int __builtin_vec_vcmpeq_p (signed int, vull, vull);
701 VCMPEQUD_P VCMPEQUD_PU
702 signed int __builtin_vec_vcmpeq_p (signed int, vsll, vsll);
703 VCMPEQUD_P VCMPEQUD_PS
704 signed int __builtin_vec_vcmpeq_p (signed int, vbll, vbll);
705 VCMPEQUD_P VCMPEQUD_PB
706 signed int __builtin_vec_vcmpeq_p (signed int, vsq, vsq);
707 VCMPEQUT_P VCMPEQUT_P_VSQ
708 signed int __builtin_vec_vcmpeq_p (signed int, vuq, vuq);
709 VCMPEQUT_P VCMPEQUT_P_VUQ
710 signed int __builtin_vec_vcmpeq_p (signed int, vf, vf);
712 signed int __builtin_vec_vcmpeq_p (signed int, vd, vd);
714 ; The following variants are deprecated.
715 signed int __builtin_vec_vcmpeq_p (signed int, vbc, vuc);
716 VCMPEQUB_P VCMPEQUB_P_BU
717 signed int __builtin_vec_vcmpeq_p (signed int, vuc, vbc);
718 VCMPEQUB_P VCMPEQUB_P_UB
719 signed int __builtin_vec_vcmpeq_p (signed int, vbc, vsc);
720 VCMPEQUB_P VCMPEQUB_P_BS
721 signed int __builtin_vec_vcmpeq_p (signed int, vsc, vbc);
722 VCMPEQUB_P VCMPEQUB_P_SB
723 signed int __builtin_vec_vcmpeq_p (signed int, vbs, vus);
724 VCMPEQUH_P VCMPEQUH_P_BU
725 signed int __builtin_vec_vcmpeq_p (signed int, vus, vbs);
726 VCMPEQUH_P VCMPEQUH_P_UB
727 signed int __builtin_vec_vcmpeq_p (signed int, vbs, vss);
728 VCMPEQUH_P VCMPEQUH_P_BS
729 signed int __builtin_vec_vcmpeq_p (signed int, vss, vbs);
730 VCMPEQUH_P VCMPEQUH_P_SB
731 signed int __builtin_vec_vcmpeq_p (signed int, vbi, vui);
732 VCMPEQUW_P VCMPEQUW_P_BU
733 signed int __builtin_vec_vcmpeq_p (signed int, vui, vbi);
734 VCMPEQUW_P VCMPEQUW_P_UB
735 signed int __builtin_vec_vcmpeq_p (signed int, vbi, vsi);
736 VCMPEQUW_P VCMPEQUW_P_BS
737 signed int __builtin_vec_vcmpeq_p (signed int, vsi, vbi);
738 VCMPEQUW_P VCMPEQUW_P_SB
739 signed int __builtin_vec_vcmpeq_p (signed int, vbll, vull);
740 VCMPEQUD_P VCMPEQUD_P_BU
741 signed int __builtin_vec_vcmpeq_p (signed int, vull, vbll);
742 VCMPEQUD_P VCMPEQUD_P_UB
743 signed int __builtin_vec_vcmpeq_p (signed int, vbll, vsll);
744 VCMPEQUD_P VCMPEQUD_P_BS
745 signed int __builtin_vec_vcmpeq_p (signed int, vbll, vsll);
746 VCMPEQUD_P VCMPEQUD_P_SB
748 [VEC_CMPEQB, SKIP, __builtin_byte_in_set]
749 signed int __builtin_byte_in_set (unsigned int, unsigned long long);
752 [VEC_CMPGE, vec_cmpge, __builtin_vec_cmpge]
753 vbc __builtin_vec_cmpge (vsc, vsc);
754 CMPGE_16QI CMPGE_16QI_VSC
755 vbc __builtin_vec_cmpge (vuc, vuc);
756 CMPGE_U16QI CMPGE_16QI_VUC
757 vbs __builtin_vec_cmpge (vss, vss);
758 CMPGE_8HI CMPGE_8HI_VSS
759 vbs __builtin_vec_cmpge (vus, vus);
760 CMPGE_U8HI CMPGE_8HI_VUS
761 vbi __builtin_vec_cmpge (vsi, vsi);
762 CMPGE_4SI CMPGE_4SI_VSI
763 vbi __builtin_vec_cmpge (vui, vui);
764 CMPGE_U4SI CMPGE_4SI_VUI
765 vbll __builtin_vec_cmpge (vsll, vsll);
766 CMPGE_2DI CMPGE_2DI_VSLL
767 vbll __builtin_vec_cmpge (vull, vull);
768 CMPGE_U2DI CMPGE_2DI_VULL
769 vbq __builtin_vec_cmpge (vsq, vsq);
771 vbq __builtin_vec_cmpge (vuq, vuq);
773 vbi __builtin_vec_cmpge (vf, vf);
775 vbll __builtin_vec_cmpge (vd, vd);
778 ; We skip generating a #define because of the C-versus-C++ complexity
779 ; in altivec.h. Look there for the template-y details.
780 ; See altivec_build_resolved_builtin for how we deal with VEC_CMPGE_P.
781 ; It's quite strange and horrible!
782 [VEC_CMPGE_P, SKIP, __builtin_vec_vcmpge_p]
783 signed int __builtin_vec_vcmpge_p (signed int, vuc, vuc);
784 VCMPGTUB_P VCMPGTUB_PR
785 signed int __builtin_vec_vcmpge_p (signed int, vsc, vsc);
786 VCMPGTSB_P VCMPGTSB_PR
787 signed int __builtin_vec_vcmpge_p (signed int, vus, vus);
788 VCMPGTUH_P VCMPGTUH_PR
789 signed int __builtin_vec_vcmpge_p (signed int, vss, vss);
790 VCMPGTSH_P VCMPGTSH_PR
791 signed int __builtin_vec_vcmpge_p (signed int, vui, vui);
792 VCMPGTUW_P VCMPGTUW_PR
793 signed int __builtin_vec_vcmpge_p (signed int, vsi, vsi);
794 VCMPGTSW_P VCMPGTSW_PR
795 signed int __builtin_vec_vcmpge_p (signed int, vull, vull);
796 VCMPGTUD_P VCMPGTUD_PR
797 signed int __builtin_vec_vcmpge_p (signed int, vsll, vsll);
798 VCMPGTSD_P VCMPGTSD_PR
799 signed int __builtin_vec_vcmpge_p (signed int, vuq, vuq);
800 VCMPGTUT_P VCMPGTUT_PR
801 signed int __builtin_vec_vcmpge_p (signed int, vsq, vsq);
802 VCMPGTST_P VCMPGTST_PR
803 signed int __builtin_vec_vcmpge_p (signed int, vf, vf);
805 signed int __builtin_vec_vcmpge_p (signed int, vd, vd);
807 ; The following variants are deprecated.
808 signed int __builtin_vec_vcmpge_p (signed int, vbc, vuc);
809 VCMPGTUB_P VCMPGTUB_PR_BU
810 signed int __builtin_vec_vcmpge_p (signed int, vuc, vbc);
811 VCMPGTUB_P VCMPGTUB_PR_UB
812 signed int __builtin_vec_vcmpge_p (signed int, vbc, vsc);
813 VCMPGTSB_P VCMPGTSB_PR_BS
814 signed int __builtin_vec_vcmpge_p (signed int, vsc, vbc);
815 VCMPGTSB_P VCMPGTSB_PR_SB
816 signed int __builtin_vec_vcmpge_p (signed int, vbs, vus);
817 VCMPGTUH_P VCMPGTUH_PR_BU
818 signed int __builtin_vec_vcmpge_p (signed int, vus, vbs);
819 VCMPGTUH_P VCMPGTUH_PR_UB
820 signed int __builtin_vec_vcmpge_p (signed int, vbs, vss);
821 VCMPGTSH_P VCMPGTSH_PR_BS
822 signed int __builtin_vec_vcmpge_p (signed int, vss, vbs);
823 VCMPGTSH_P VCMPGTSH_PR_SB
824 signed int __builtin_vec_vcmpge_p (signed int, vbi, vui);
825 VCMPGTUW_P VCMPGTUW_PR_BU
826 signed int __builtin_vec_vcmpge_p (signed int, vui, vbi);
827 VCMPGTUW_P VCMPGTUW_PR_UB
828 signed int __builtin_vec_vcmpge_p (signed int, vbi, vsi);
829 VCMPGTSW_P VCMPGTSW_PR_BS
830 signed int __builtin_vec_vcmpge_p (signed int, vsi, vbi);
831 VCMPGTSW_P VCMPGTSW_PR_SB
832 signed int __builtin_vec_vcmpge_p (signed int, vbll, vull);
833 VCMPGTUD_P VCMPGTUD_PR_BU
834 signed int __builtin_vec_vcmpge_p (signed int, vull, vbll);
835 VCMPGTUD_P VCMPGTUD_PR_UB
836 signed int __builtin_vec_vcmpge_p (signed int, vbll, vsll);
837 VCMPGTSD_P VCMPGTSD_PR_BS
838 signed int __builtin_vec_vcmpge_p (signed int, vsll, vbll);
839 VCMPGTSD_P VCMPGTSD_PR_SB
841 [VEC_CMPGT, vec_cmpgt, __builtin_vec_cmpgt]
842 vbc __builtin_vec_cmpgt (vsc, vsc);
844 vbc __builtin_vec_cmpgt (vuc, vuc);
846 vbs __builtin_vec_cmpgt (vss, vss);
848 vbs __builtin_vec_cmpgt (vus, vus);
850 vbi __builtin_vec_cmpgt (vsi, vsi);
852 vbi __builtin_vec_cmpgt (vui, vui);
854 vbll __builtin_vec_cmpgt (vsll, vsll);
856 vbll __builtin_vec_cmpgt (vull, vull);
858 vbq __builtin_vec_cmpgt (vsq, vsq);
860 vbq __builtin_vec_cmpgt (vuq, vuq);
862 vbi __builtin_vec_cmpgt (vf, vf);
864 vbll __builtin_vec_cmpgt (vd, vd);
867 ; We skip generating a #define because of the C-versus-C++ complexity
868 ; in altivec.h. Look there for the template-y details.
869 [VEC_CMPGT_P, SKIP, __builtin_vec_vcmpgt_p]
870 signed int __builtin_vec_vcmpgt_p (signed int, vuc, vuc);
872 signed int __builtin_vec_vcmpgt_p (signed int, vsc, vsc);
874 signed int __builtin_vec_vcmpgt_p (signed int, vus, vus);
876 signed int __builtin_vec_vcmpgt_p (signed int, vss, vss);
878 signed int __builtin_vec_vcmpgt_p (signed int, vui, vui);
880 signed int __builtin_vec_vcmpgt_p (signed int, vsi, vsi);
882 signed int __builtin_vec_vcmpgt_p (signed int, vull, vull);
884 signed int __builtin_vec_vcmpgt_p (signed int, vsll, vsll);
886 signed int __builtin_vec_vcmpgt_p (signed int, vuq, vuq);
888 signed int __builtin_vec_vcmpgt_p (signed int, vsq, vsq);
890 signed int __builtin_vec_vcmpgt_p (signed int, vf, vf);
892 signed int __builtin_vec_vcmpgt_p (signed int, vd, vd);
894 ; The following variants are deprecated.
895 signed int __builtin_vec_vcmpgt_p (signed int, vbc, vuc);
896 VCMPGTUB_P VCMPGTUB_P_BU
897 signed int __builtin_vec_vcmpgt_p (signed int, vuc, vbc);
898 VCMPGTUB_P VCMPGTUB_P_UB
899 signed int __builtin_vec_vcmpgt_p (signed int, vbc, vsc);
900 VCMPGTSB_P VCMPGTSB_P_BS
901 signed int __builtin_vec_vcmpgt_p (signed int, vsc, vbc);
902 VCMPGTSB_P VCMPGTSB_P_SB
903 signed int __builtin_vec_vcmpgt_p (signed int, vbs, vus);
904 VCMPGTUH_P VCMPGTUH_P_BU
905 signed int __builtin_vec_vcmpgt_p (signed int, vus, vbs);
906 VCMPGTUH_P VCMPGTUH_P_UB
907 signed int __builtin_vec_vcmpgt_p (signed int, vbs, vss);
908 VCMPGTSH_P VCMPGTSH_P_BS
909 signed int __builtin_vec_vcmpgt_p (signed int, vss, vbs);
910 VCMPGTSH_P VCMPGTSH_P_SB
911 signed int __builtin_vec_vcmpgt_p (signed int, vbi, vui);
912 VCMPGTUW_P VCMPGTUW_P_BU
913 signed int __builtin_vec_vcmpgt_p (signed int, vui, vbi);
914 VCMPGTUW_P VCMPGTUW_P_UB
915 signed int __builtin_vec_vcmpgt_p (signed int, vbi, vsi);
916 VCMPGTSW_P VCMPGTSW_P_BS
917 signed int __builtin_vec_vcmpgt_p (signed int, vsi, vbi);
918 VCMPGTSW_P VCMPGTSW_P_SB
919 signed int __builtin_vec_vcmpgt_p (signed int, vbll, vull);
920 VCMPGTUD_P VCMPGTUD_P_BU
921 signed int __builtin_vec_vcmpgt_p (signed int, vull, vbll);
922 VCMPGTUD_P VCMPGTUD_P_UB
923 signed int __builtin_vec_vcmpgt_p (signed int, vbll, vsll);
924 VCMPGTSD_P VCMPGTSD_P_BS
925 signed int __builtin_vec_vcmpgt_p (signed int, vsll, vbll);
926 VCMPGTSD_P VCMPGTSD_P_SB
928 ; Note that there is no entry for VEC_CMPLE. VEC_CMPLE is implemented
929 ; using VEC_CMPGE with reversed arguments in altivec.h.
931 ; Note that there is no entry for VEC_CMPLT. VEC_CMPLT is implemented
932 ; using VEC_CMPGT with reversed arguments in altivec.h.
934 [VEC_CMPNE, vec_cmpne, __builtin_vec_cmpne]
935 vbc __builtin_vec_cmpne (vbc, vbc);
937 vbc __builtin_vec_cmpne (vsc, vsc);
939 vbc __builtin_vec_cmpne (vuc, vuc);
941 vbs __builtin_vec_cmpne (vbs, vbs);
943 vbs __builtin_vec_cmpne (vss, vss);
945 vbs __builtin_vec_cmpne (vus, vus);
947 vbi __builtin_vec_cmpne (vbi, vbi);
949 vbi __builtin_vec_cmpne (vsi, vsi);
951 vbi __builtin_vec_cmpne (vui, vui);
953 vbq __builtin_vec_cmpne (vsq, vsq);
955 vbq __builtin_vec_cmpne (vuq, vuq);
958 ; We skip generating a #define because of the C-versus-C++ complexity
959 ; in altivec.h. Look there for the template-y details.
960 [VEC_CMPNE_P, SKIP, __builtin_vec_vcmpne_p]
961 signed int __builtin_vec_vcmpne_p (vsc, vsc);
962 VCMPNEB_P VCMPNEB_VSC_P
963 signed int __builtin_vec_vcmpne_p (vuc, vuc);
964 VCMPNEB_P VCMPNEB_VUC_P
965 signed int __builtin_vec_vcmpne_p (vbc, vbc);
966 VCMPNEB_P VCMPNEB_VBC_P
967 signed int __builtin_vec_vcmpne_p (vss, vss);
968 VCMPNEH_P VCMPNEH_VSS_P
969 signed int __builtin_vec_vcmpne_p (vus, vus);
970 VCMPNEH_P VCMPNEH_VUS_P
971 signed int __builtin_vec_vcmpne_p (vbs, vbs);
972 VCMPNEH_P VCMPNEH_VBS_P
973 signed int __builtin_vec_vcmpne_p (vp, vp);
974 VCMPNEH_P VCMPNEH_VP_P
975 signed int __builtin_vec_vcmpne_p (vsi, vsi);
976 VCMPNEW_P VCMPNEW_VSI_P
977 signed int __builtin_vec_vcmpne_p (vui, vui);
978 VCMPNEW_P VCMPNEW_VUI_P
979 signed int __builtin_vec_vcmpne_p (vbi, vbi);
980 VCMPNEW_P VCMPNEW_VBI_P
981 signed int __builtin_vec_vcmpne_p (vsll, vsll);
982 VCMPNED_P VCMPNED_VSLL_P
983 signed int __builtin_vec_vcmpne_p (vull, vull);
984 VCMPNED_P VCMPNED_VULL_P
985 signed int __builtin_vec_vcmpne_p (vbll, vbll);
986 VCMPNED_P VCMPNED_VBLL_P
987 signed int __builtin_vec_vcmpne_p (vsq, vsq);
988 VCMPNET_P VCMPNET_VSQ_P
989 signed int __builtin_vec_vcmpne_p (vuq, vuq);
990 VCMPNET_P VCMPNET_VUQ_P
991 signed int __builtin_vec_vcmpne_p (vf, vf);
993 signed int __builtin_vec_vcmpne_p (vd, vd);
995 ; The following variants are deprecated.
996 signed int __builtin_vec_vcmpne_p (signed int, vbc, vuc);
997 VCMPNEB_P VCMPNEB_P_BU
998 signed int __builtin_vec_vcmpne_p (signed int, vuc, vbc);
999 VCMPNEB_P VCMPNEB_P_UB
1000 signed int __builtin_vec_vcmpne_p (signed int, vbc, vsc);
1001 VCMPNEB_P VCMPNEB_P_BS
1002 signed int __builtin_vec_vcmpne_p (signed int, vsc, vbc);
1003 VCMPNEB_P VCMPNEB_P_SB
1004 signed int __builtin_vec_vcmpne_p (signed int, vbs, vus);
1005 VCMPNEH_P VCMPNEH_P_BU
1006 signed int __builtin_vec_vcmpne_p (signed int, vus, vbs);
1007 VCMPNEH_P VCMPNEH_P_UB
1008 signed int __builtin_vec_vcmpne_p (signed int, vbs, vss);
1009 VCMPNEH_P VCMPNEH_P_BS
1010 signed int __builtin_vec_vcmpne_p (signed int, vss, vbs);
1011 VCMPNEH_P VCMPNEH_P_SB
1012 signed int __builtin_vec_vcmpne_p (signed int, vbi, vui);
1013 VCMPNEW_P VCMPNEW_P_BU
1014 signed int __builtin_vec_vcmpne_p (signed int, vui, vbi);
1015 VCMPNEW_P VCMPNEW_P_UB
1016 signed int __builtin_vec_vcmpne_p (signed int, vbi, vsi);
1017 VCMPNEW_P VCMPNEW_P_BS
1018 signed int __builtin_vec_vcmpne_p (signed int, vsi, vbi);
1019 VCMPNEW_P VCMPNEW_P_SB
1020 signed int __builtin_vec_vcmpne_p (signed int, vbll, vull);
1021 VCMPNED_P VCMPNED_P_BU
1022 signed int __builtin_vec_vcmpne_p (signed int, vull, vbll);
1023 VCMPNED_P VCMPNED_P_UB
1024 signed int __builtin_vec_vcmpne_p (signed int, vbll, vsll);
1025 VCMPNED_P VCMPNED_P_BS
1026 signed int __builtin_vec_vcmpne_p (signed int, vbll, vsll);
1027 VCMPNED_P VCMPNED_P_SB
1029 [VEC_CMPNEZ, vec_cmpnez, __builtin_vec_vcmpnez, _ARCH_PWR9]
1030 vbc __builtin_vec_cmpnez (vsc, vsc);
1032 vbc __builtin_vec_cmpnez (vuc, vuc);
1034 vbs __builtin_vec_cmpnez (vss, vss);
1036 vbs __builtin_vec_cmpnez (vus, vus);
1038 vbi __builtin_vec_cmpnez (vsi, vsi);
1040 vbi __builtin_vec_cmpnez (vui, vui);
1043 ; We skip generating a #define because of the C-versus-C++ complexity
1044 ; in altivec.h. Look there for the template-y details.
1045 [VEC_CMPNEZ_P, SKIP, __builtin_vec_vcmpnez_p]
1046 signed int __builtin_vec_vcmpnez_p (signed int, vsc, vsc);
1047 VCMPNEZB_P VCMPNEZB_VSC_P
1048 signed int __builtin_vec_vcmpnez_p (signed int, vuc, vuc);
1049 VCMPNEZB_P VCMPNEZB_VUC_P
1050 signed int __builtin_vec_vcmpnez_p (signed int, vss, vss);
1051 VCMPNEZH_P VCMPNEZH_VSS_P
1052 signed int __builtin_vec_vcmpnez_p (signed int, vus, vus);
1053 VCMPNEZH_P VCMPNEZH_VUS_P
1054 signed int __builtin_vec_vcmpnez_p (signed int, vsi, vsi);
1055 VCMPNEZW_P VCMPNEZW_VSI_P
1056 signed int __builtin_vec_vcmpnez_p (signed int, vui, vui);
1057 VCMPNEZW_P VCMPNEZW_VUI_P
1059 [VEC_CMPRB, SKIP, __builtin_byte_in_range]
1060 signed int __builtin_byte_in_range (unsigned int, unsigned int);
1063 [VEC_CMPRB2, SKIP, __builtin_byte_in_either_range]
1064 signed int __builtin_byte_in_range (unsigned int, unsigned int);
1067 [VEC_CNTLZ, vec_cntlz, __builtin_vec_vclz, _ARCH_PWR8]
1068 vsc __builtin_vec_vclz (vsc);
1070 vuc __builtin_vec_vclz (vuc);
1072 vss __builtin_vec_vclz (vss);
1074 vus __builtin_vec_vclz (vus);
1076 vsi __builtin_vec_vclz (vsi);
1078 vui __builtin_vec_vclz (vui);
1080 vsll __builtin_vec_vclz (vsll);
1082 vull __builtin_vec_vclz (vull);
1085 [VEC_CNTLZM, vec_cntlzm, __builtin_vec_vclzdm, _ARCH_PWR10]
1086 vull __builtin_vec_vclzdm (vull, vull);
1089 [VEC_CNTTZM, vec_cnttzm, __builtin_vec_vctzdm, _ARCH_PWR10]
1090 vull __builtin_vec_vctzdm (vull, vull);
1093 [VEC_CNTLZ_LSBB, vec_cntlz_lsbb, __builtin_vec_vclzlsbb, _ARCH_PWR9]
1094 signed int __builtin_vec_vclzlsbb (vsc);
1095 VCLZLSBB_V16QI VCLZLSBB_VSC
1096 signed int __builtin_vec_vclzlsbb (vuc);
1097 VCLZLSBB_V16QI VCLZLSBB_VUC
1098 signed int __builtin_vec_vclzlsbb (vss);
1099 VCLZLSBB_V8HI VCLZLSBB_VSS
1100 signed int __builtin_vec_vclzlsbb (vus);
1101 VCLZLSBB_V8HI VCLZLSBB_VUS
1102 signed int __builtin_vec_vclzlsbb (vsi);
1103 VCLZLSBB_V4SI VCLZLSBB_VSI
1104 signed int __builtin_vec_vclzlsbb (vui);
1105 VCLZLSBB_V4SI VCLZLSBB_VUI
1107 [VEC_CNTM, vec_cntm, __builtin_vec_cntm, _ARCH_PWR10]
1108 unsigned long long __builtin_vec_cntm (vuc, const int);
1110 unsigned long long __builtin_vec_cntm (vus, const int);
1112 unsigned long long __builtin_vec_cntm (vui, const int);
1114 unsigned long long __builtin_vec_cntm (vull, const int);
1117 [VEC_CNTTZ, vec_cnttz, __builtin_vec_vctz, _ARCH_PWR9]
1118 vsc __builtin_vec_vctz (vsc);
1120 vuc __builtin_vec_vctz (vuc);
1122 vss __builtin_vec_vctz (vss);
1124 vus __builtin_vec_vctz (vus);
1126 vsi __builtin_vec_vctz (vsi);
1128 vui __builtin_vec_vctz (vui);
1130 vsll __builtin_vec_vctz (vsll);
1132 vull __builtin_vec_vctz (vull);
1135 [VEC_CNTTZ_LSBB, vec_cnttz_lsbb, __builtin_vec_vctzlsbb, _ARCH_PWR9]
1136 signed int __builtin_vec_vctzlsbb (vsc);
1137 VCTZLSBB_V16QI VCTZLSBB_VSC
1138 signed int __builtin_vec_vctzlsbb (vuc);
1139 VCTZLSBB_V16QI VCTZLSBB_VUC
1140 signed int __builtin_vec_vctzlsbb (vss);
1141 VCTZLSBB_V8HI VCTZLSBB_VSS
1142 signed int __builtin_vec_vctzlsbb (vus);
1143 VCTZLSBB_V8HI VCTZLSBB_VUS
1144 signed int __builtin_vec_vctzlsbb (vsi);
1145 VCTZLSBB_V4SI VCTZLSBB_VSI
1146 signed int __builtin_vec_vctzlsbb (vui);
1147 VCTZLSBB_V4SI VCTZLSBB_VUI
1149 [VEC_CONVERT_4F32_8I16, SKIP, __builtin_vec_convert_4f32_8i16]
1150 vus __builtin_vec_convert_4f32_8i16 (vf, vf);
1153 [VEC_CONVERT_4F32_8F16, vec_pack_to_short_fp32, __builtin_vec_convert_4f32_8f16, _ARCH_PWR9]
1154 vus __builtin_vec_convert_4f32_8f16 (vf, vf);
1157 [VEC_COPYSIGN, SKIP, __builtin_vec_copysign]
1158 vf __builtin_vec_copysign (vf, vf);
1160 vd __builtin_vec_copysign (vd, vd);
1163 [VEC_CTF, vec_ctf, __builtin_vec_ctf]
1164 vf __builtin_vec_ctf (vsi, const int);
1166 vf __builtin_vec_ctf (vui, const int);
1168 vd __builtin_vec_ctf (vsll, const int);
1170 vd __builtin_vec_ctf (vull, const int);
1173 [VEC_CTS, vec_cts, __builtin_vec_cts]
1174 vsi __builtin_vec_cts (vf, const int);
1176 vsll __builtin_vec_cts (vd, const int);
1179 [VEC_CTU, vec_ctu, __builtin_vec_ctu]
1180 vui __builtin_vec_ctu (vf, const int);
1182 vull __builtin_vec_ctu (vd, const int);
1185 [VEC_DIV, vec_div, __builtin_vec_div, __VSX__]
1186 vsi __builtin_vec_div (vsi, vsi);
1188 vui __builtin_vec_div (vui, vui);
1190 vsll __builtin_vec_div (vsll, vsll);
1192 vull __builtin_vec_div (vull, vull);
1194 vsq __builtin_vec_div (vsq, vsq);
1196 vuq __builtin_vec_div (vuq, vuq);
1198 vf __builtin_vec_div (vf, vf);
1200 vd __builtin_vec_div (vd, vd);
1203 [VEC_DIVE, vec_dive, __builtin_vec_dive, _ARCH_PWR10]
1204 vsi __builtin_vec_dive (vsi, vsi);
1206 vui __builtin_vec_dive (vui, vui);
1208 vsll __builtin_vec_dive (vsll, vsll);
1210 vull __builtin_vec_dive (vull, vull);
1212 vsq __builtin_vec_dive (vsq, vsq);
1214 vuq __builtin_vec_dive (vuq, vuq);
1217 [VEC_DOUBLE, vec_double, __builtin_vec_double]
1218 vd __builtin_vec_double (vsll);
1220 vd __builtin_vec_double (vull);
1223 [VEC_DOUBLEE, vec_doublee, __builtin_vec_doublee]
1224 vd __builtin_vec_doublee (vsi);
1226 vd __builtin_vec_doublee (vui);
1228 vd __builtin_vec_doublee (vf);
1231 [VEC_DOUBLEH, vec_doubleh, __builtin_vec_doubleh]
1232 vd __builtin_vec_doubleh (vsi);
1234 vd __builtin_vec_doubleh (vui);
1236 vd __builtin_vec_doubleh (vf);
1239 [VEC_DOUBLEL, vec_doublel, __builtin_vec_doublel]
1240 vd __builtin_vec_doublel (vsi);
1242 vd __builtin_vec_doublel (vui);
1244 vd __builtin_vec_doublel (vf);
1247 [VEC_DOUBLEO, vec_doubleo, __builtin_vec_doubleo]
1248 vd __builtin_vec_doubleo (vsi);
1250 vd __builtin_vec_doubleo (vui);
1252 vd __builtin_vec_doubleo (vf);
1255 [VEC_DST, vec_dst, __builtin_vec_dst]
1256 void __builtin_vec_dst (unsigned char *, const int, const int);
1258 void __builtin_vec_dst (signed char *, const int, const int);
1260 void __builtin_vec_dst (unsigned short *, const int, const int);
1262 void __builtin_vec_dst (signed short *, const int, const int);
1264 void __builtin_vec_dst (unsigned int *, const int, const int);
1266 void __builtin_vec_dst (signed int *, const int, const int);
1268 void __builtin_vec_dst (unsigned long *, const int, const int);
1270 void __builtin_vec_dst (signed long *, const int, const int);
1272 void __builtin_vec_dst (unsigned long long *, const int, const int);
1274 void __builtin_vec_dst (signed long long *, const int, const int);
1276 void __builtin_vec_dst (float *, const int, const int);
1278 void __builtin_vec_dst (vuc *, const int, const int);
1280 void __builtin_vec_dst (vsc *, const int, const int);
1282 void __builtin_vec_dst (vbc *, const int, const int);
1284 void __builtin_vec_dst (vus *, const int, const int);
1286 void __builtin_vec_dst (vss *, const int, const int);
1288 void __builtin_vec_dst (vbs *, const int, const int);
1290 void __builtin_vec_dst (vp *, const int, const int);
1292 void __builtin_vec_dst (vui *, const int, const int);
1294 void __builtin_vec_dst (vsi *, const int, const int);
1296 void __builtin_vec_dst (vbi *, const int, const int);
1298 void __builtin_vec_dst (vf *, const int, const int);
1301 [VEC_DSTST, vec_dstst, __builtin_vec_dstst]
1302 void __builtin_vec_dstst (unsigned char *, const int, const int);
1304 void __builtin_vec_dstst (signed char *, const int, const int);
1306 void __builtin_vec_dstst (unsigned short *, const int, const int);
1308 void __builtin_vec_dstst (signed short *, const int, const int);
1310 void __builtin_vec_dstst (unsigned int *, const int, const int);
1312 void __builtin_vec_dstst (signed int *, const int, const int);
1314 void __builtin_vec_dstst (unsigned long *, const int, const int);
1316 void __builtin_vec_dstst (signed long *, const int, const int);
1318 void __builtin_vec_dstst (unsigned long long *, const int, const int);
1320 void __builtin_vec_dstst (signed long long *, const int, const int);
1322 void __builtin_vec_dstst (float *, const int, const int);
1324 void __builtin_vec_dstst (vuc *, const int, const int);
1326 void __builtin_vec_dstst (vsc *, const int, const int);
1328 void __builtin_vec_dstst (vbc *, const int, const int);
1330 void __builtin_vec_dstst (vus *, const int, const int);
1332 void __builtin_vec_dstst (vss *, const int, const int);
1334 void __builtin_vec_dstst (vbs *, const int, const int);
1336 void __builtin_vec_dstst (vp *, const int, const int);
1338 void __builtin_vec_dstst (vui *, const int, const int);
1340 void __builtin_vec_dstst (vsi *, const int, const int);
1342 void __builtin_vec_dstst (vbi *, const int, const int);
1344 void __builtin_vec_dstst (vf *, const int, const int);
1347 [VEC_DSTSTT, vec_dststt, __builtin_vec_dststt]
1348 void __builtin_vec_dststt (unsigned char *, const int, const int);
1350 void __builtin_vec_dststt (signed char *, const int, const int);
1352 void __builtin_vec_dststt (unsigned short *, const int, const int);
1354 void __builtin_vec_dststt (signed short *, const int, const int);
1356 void __builtin_vec_dststt (unsigned int *, const int, const int);
1358 void __builtin_vec_dststt (signed int *, const int, const int);
1360 void __builtin_vec_dststt (unsigned long *, const int, const int);
1362 void __builtin_vec_dststt (signed long *, const int, const int);
1364 void __builtin_vec_dststt (unsigned long long *, const int, const int);
1366 void __builtin_vec_dststt (signed long long *, const int, const int);
1368 void __builtin_vec_dststt (float *, const int, const int);
1370 void __builtin_vec_dststt (vuc *, const int, const int);
1372 void __builtin_vec_dststt (vsc *, const int, const int);
1374 void __builtin_vec_dststt (vbc *, const int, const int);
1376 void __builtin_vec_dststt (vus *, const int, const int);
1378 void __builtin_vec_dststt (vss *, const int, const int);
1380 void __builtin_vec_dststt (vbs *, const int, const int);
1382 void __builtin_vec_dststt (vp *, const int, const int);
1384 void __builtin_vec_dststt (vui *, const int, const int);
1386 void __builtin_vec_dststt (vsi *, const int, const int);
1388 void __builtin_vec_dststt (vbi *, const int, const int);
1390 void __builtin_vec_dststt (vf *, const int, const int);
1393 [VEC_DSTT, vec_dstt, __builtin_vec_dstt]
1394 void __builtin_vec_dstt (unsigned char *, const int, const int);
1396 void __builtin_vec_dstt (signed char *, const int, const int);
1398 void __builtin_vec_dstt (unsigned short *, const int, const int);
1400 void __builtin_vec_dstt (signed short *, const int, const int);
1402 void __builtin_vec_dstt (unsigned int *, const int, const int);
1404 void __builtin_vec_dstt (signed int *, const int, const int);
1406 void __builtin_vec_dstt (unsigned long *, const int, const int);
1408 void __builtin_vec_dstt (signed long *, const int, const int);
1410 void __builtin_vec_dstt (unsigned long long *, const int, const int);
1412 void __builtin_vec_dstt (signed long long *, const int, const int);
1414 void __builtin_vec_dstt (float *, const int, const int);
1416 void __builtin_vec_dstt (vuc *, const int, const int);
1418 void __builtin_vec_dstt (vsc *, const int, const int);
1420 void __builtin_vec_dstt (vbc *, const int, const int);
1422 void __builtin_vec_dstt (vus *, const int, const int);
1424 void __builtin_vec_dstt (vss *, const int, const int);
1426 void __builtin_vec_dstt (vbs *, const int, const int);
1428 void __builtin_vec_dstt (vp *, const int, const int);
1430 void __builtin_vec_dstt (vui *, const int, const int);
1432 void __builtin_vec_dstt (vsi *, const int, const int);
1434 void __builtin_vec_dstt (vbi *, const int, const int);
1436 void __builtin_vec_dstt (vf *, const int, const int);
1439 [VEC_EQV, vec_eqv, __builtin_vec_eqv, _ARCH_PWR8]
1440 vsc __builtin_vec_eqv (vsc, vsc);
1442 vuc __builtin_vec_eqv (vuc, vuc);
1443 EQV_V16QI_UNS EQV_V16QI_VUC
1444 vbc __builtin_vec_eqv (vbc, vbc);
1445 EQV_V16QI_UNS EQV_V16QI_VBC
1446 vss __builtin_vec_eqv (vss, vss);
1448 vus __builtin_vec_eqv (vus, vus);
1449 EQV_V8HI_UNS EQV_V8HI_VUS
1450 vbs __builtin_vec_eqv (vbs, vbs);
1451 EQV_V8HI_UNS EQV_V8HI_VBS
1452 vsi __builtin_vec_eqv (vsi, vsi);
1454 vui __builtin_vec_eqv (vui, vui);
1455 EQV_V4SI_UNS EQV_V4SI_VUI
1456 vbi __builtin_vec_eqv (vbi, vbi);
1457 EQV_V4SI_UNS EQV_V4SI_VBI
1458 vsll __builtin_vec_eqv (vsll, vsll);
1460 vull __builtin_vec_eqv (vull, vull);
1461 EQV_V2DI_UNS EQV_V2DI_VULL
1462 vbll __builtin_vec_eqv (vbll, vbll);
1463 EQV_V2DI_UNS EQV_V2DI_VBLL
1464 vf __builtin_vec_eqv (vf, vf);
1466 vd __builtin_vec_eqv (vd, vd);
1468 ; The following variants are deprecated.
1469 vsc __builtin_vec_eqv (vbc, vsc);
1470 EQV_V16QI EQV_VBC_VSC
1471 vsc __builtin_vec_eqv (vsc, vbc);
1472 EQV_V16QI EQV_VSC_VBC
1473 vuc __builtin_vec_eqv (vbc, vuc);
1474 EQV_V16QI_UNS EQV_VBC_VUC
1475 vuc __builtin_vec_eqv (vuc, vbc);
1476 EQV_V16QI_UNS EQV_VUC_VBC
1477 vss __builtin_vec_eqv (vbs, vss);
1478 EQV_V8HI EQV_VBS_VSS
1479 vss __builtin_vec_eqv (vss, vbs);
1480 EQV_V8HI EQV_VSS_VBS
1481 vus __builtin_vec_eqv (vbs, vus);
1482 EQV_V8HI_UNS EQV_VBS_VUS
1483 vus __builtin_vec_eqv (vus, vbs);
1484 EQV_V8HI_UNS EQV_VUS_VBS
1485 vsi __builtin_vec_eqv (vbi, vsi);
1486 EQV_V4SI EQV_VBI_VSI
1487 vsi __builtin_vec_eqv (vsi, vbi);
1488 EQV_V4SI EQV_VSI_VBI
1489 vui __builtin_vec_eqv (vbi, vui);
1490 EQV_V4SI_UNS EQV_VBI_VUI
1491 vui __builtin_vec_eqv (vui, vbi);
1492 EQV_V4SI_UNS EQV_VUI_VBI
1493 vsll __builtin_vec_eqv (vbll, vsll);
1494 EQV_V2DI EQV_VBLL_VSLL
1495 vsll __builtin_vec_eqv (vsll, vbll);
1496 EQV_V2DI EQV_VSLL_VBLL
1497 vull __builtin_vec_eqv (vbll, vull);
1498 EQV_V2DI_UNS EQV_VBLL_VULL
1499 vull __builtin_vec_eqv (vull, vbll);
1500 EQV_V2DI_UNS EQV_VULL_VBLL
1502 [VEC_EXPANDM, vec_expandm, __builtin_vec_vexpandm, _ARCH_PWR10]
1503 vuc __builtin_vec_vexpandm (vuc);
1505 vus __builtin_vec_vexpandm (vus);
1507 vui __builtin_vec_vexpandm (vui);
1509 vull __builtin_vec_vexpandm (vull);
1511 vuq __builtin_vec_vexpandm (vuq);
1514 [VEC_EXPTE, vec_expte, __builtin_vec_expte]
1515 vf __builtin_vec_expte (vf);
1518 ; There are no actual builtins for vec_extract. There is special handling for
1519 ; this in altivec_resolve_overloaded_builtin in rs6000-c.c, where the call
1520 ; is replaced by "pointer tricks." The single overload here causes
1521 ; __builtin_vec_extract to be registered with the front end so this can
1523 [VEC_EXTRACT, vec_extract, __builtin_vec_extract]
1524 vsi __builtin_vec_extract (vsi, signed int);
1525 VSPLTW EXTRACT_FAKERY
1527 [VEC_EXTRACT_FP_FROM_SHORTH, vec_extract_fp32_from_shorth, __builtin_vec_vextract_fp_from_shorth, _ARCH_PWR9]
1528 vf __builtin_vec_vextract_fp_from_shorth (vus);
1529 VEXTRACT_FP_FROM_SHORTH
1531 [VEC_EXTRACT_FP_FROM_SHORTL, vec_extract_fp32_from_shortl, __builtin_vec_vextract_fp_from_shortl, _ARCH_PWR9]
1532 vf __builtin_vec_vextract_fp_from_shortl (vus);
1533 VEXTRACT_FP_FROM_SHORTL
1535 [VEC_EXTRACTH, vec_extracth, __builtin_vec_extracth, _ARCH_PWR10]
1536 vull __builtin_vec_extracth (vuc, vuc, unsigned char);
1538 vull __builtin_vec_extracth (vus, vus, unsigned char);
1540 vull __builtin_vec_extracth (vui, vui, unsigned char);
1542 vull __builtin_vec_extracth (vull, vull, unsigned char);
1545 [VEC_EXTRACTL, vec_extractl, __builtin_vec_extractl, _ARCH_PWR10]
1546 vull __builtin_vec_extractl (vuc, vuc, unsigned char);
1548 vull __builtin_vec_extractl (vus, vus, unsigned char);
1550 vull __builtin_vec_extractl (vui, vui, unsigned char);
1552 vull __builtin_vec_extractl (vull, vull, unsigned char);
1555 [VEC_EXTRACTM, vec_extractm, __builtin_vec_vextractm, _ARCH_PWR10]
1556 signed int __builtin_vec_vextractm (vuc);
1558 signed int __builtin_vec_vextractm (vus);
1560 signed int __builtin_vec_vextractm (vui);
1562 signed int __builtin_vec_vextractm (vull);
1564 signed int __builtin_vec_vextractm (vuq);
1567 [VEC_EXTRACT4B, vec_extract4b, __builtin_vec_extract4b, _ARCH_PWR9]
1568 vull __builtin_vec_extract4b (vuc, const int);
1571 [VEC_EXTULX, vec_xlx, __builtin_vec_vextulx, _ARCH_PWR9]
1572 signed char __builtin_vec_vextulx (unsigned int, vsc);
1574 unsigned char __builtin_vec_vextulx (unsigned int, vuc);
1576 signed short __builtin_vec_vextulx (unsigned int, vss);
1578 unsigned short __builtin_vec_vextulx (unsigned int, vus);
1580 signed int __builtin_vec_vextulx (unsigned int, vsi);
1582 unsigned int __builtin_vec_vextulx (unsigned int, vui);
1584 float __builtin_vec_vextulx (unsigned int, vf);
1587 [VEC_EXTURX, vec_xrx, __builtin_vec_vexturx, _ARCH_PWR9]
1588 signed char __builtin_vec_vexturx (unsigned int, vsc);
1590 unsigned char __builtin_vec_vexturx (unsigned int, vuc);
1592 signed short __builtin_vec_vexturx (unsigned int, vss);
1594 unsigned short __builtin_vec_vexturx (unsigned int, vus);
1596 signed int __builtin_vec_vexturx (unsigned int, vsi);
1598 unsigned int __builtin_vec_vexturx (unsigned int, vui);
1600 float __builtin_vec_vexturx (unsigned int, vf);
1603 [VEC_FIRSTMATCHINDEX, vec_first_match_index, __builtin_vec_first_match_index, _ARCH_PWR9]
1604 unsigned int __builtin_vec_first_match_index (vsc, vsc);
1605 VFIRSTMATCHINDEX_V16QI FIRSTMATCHINDEX_VSC
1606 unsigned int __builtin_vec_first_match_index (vuc, vuc);
1607 VFIRSTMATCHINDEX_V16QI FIRSTMATCHINDEX_VUC
1608 unsigned int __builtin_vec_first_match_index (vss, vss);
1609 VFIRSTMATCHINDEX_V8HI FIRSTMATCHINDEX_VSS
1610 unsigned int __builtin_vec_first_match_index (vus, vus);
1611 VFIRSTMATCHINDEX_V8HI FIRSTMATCHINDEX_VUS
1612 unsigned int __builtin_vec_first_match_index (vsi, vsi);
1613 VFIRSTMATCHINDEX_V4SI FIRSTMATCHINDEX_VSI
1614 unsigned int __builtin_vec_first_match_index (vui, vui);
1615 VFIRSTMATCHINDEX_V4SI FIRSTMATCHINDEX_VUI
1617 [VEC_FIRSTMATCHOREOSINDEX, vec_first_match_or_eos_index, __builtin_vec_first_match_or_eos_index, _ARCH_PWR9]
1618 unsigned int __builtin_vec_first_match_or_eos_index (vsc, vsc);
1619 VFIRSTMATCHOREOSINDEX_V16QI FIRSTMATCHOREOSINDEX_VSC
1620 unsigned int __builtin_vec_first_match_or_eos_index (vuc, vuc);
1621 VFIRSTMATCHOREOSINDEX_V16QI FIRSTMATCHOREOSINDEX_VUC
1622 unsigned int __builtin_vec_first_match_or_eos_index (vss, vss);
1623 VFIRSTMATCHOREOSINDEX_V8HI FIRSTMATCHOREOSINDEX_VSS
1624 unsigned int __builtin_vec_first_match_or_eos_index (vus, vus);
1625 VFIRSTMATCHOREOSINDEX_V8HI FIRSTMATCHOREOSINDEX_VUS
1626 unsigned int __builtin_vec_first_match_or_eos_index (vsi, vsi);
1627 VFIRSTMATCHOREOSINDEX_V4SI FIRSTMATCHOREOSINDEX_VSI
1628 unsigned int __builtin_vec_first_match_or_eos_index (vui, vui);
1629 VFIRSTMATCHOREOSINDEX_V4SI FIRSTMATCHOREOSINDEX_VUI
1631 [VEC_FIRSTMISMATCHINDEX, vec_first_mismatch_index, __builtin_vec_first_mismatch_index, _ARCH_PWR9]
1632 unsigned int __builtin_vec_first_mismatch_index (vsc, vsc);
1633 VFIRSTMISMATCHINDEX_V16QI FIRSTMISMATCHINDEX_VSC
1634 unsigned int __builtin_vec_first_mismatch_index (vuc, vuc);
1635 VFIRSTMISMATCHINDEX_V16QI FIRSTMISMATCHINDEX_VUC
1636 unsigned int __builtin_vec_first_mismatch_index (vss, vss);
1637 VFIRSTMISMATCHINDEX_V8HI FIRSTMISMATCHINDEX_VSS
1638 unsigned int __builtin_vec_first_mismatch_index (vus, vus);
1639 VFIRSTMISMATCHINDEX_V8HI FIRSTMISMATCHINDEX_VUS
1640 unsigned int __builtin_vec_first_mismatch_index (vsi, vsi);
1641 VFIRSTMISMATCHINDEX_V4SI FIRSTMISMATCHINDEX_VSI
1642 unsigned int __builtin_vec_first_mismatch_index (vui, vui);
1643 VFIRSTMISMATCHINDEX_V4SI FIRSTMISMATCHINDEX_VUI
1645 [VEC_FIRSTMISMATCHOREOSINDEX, vec_first_mismatch_or_eos_index, __builtin_vec_first_mismatch_or_eos_index, _ARCH_PWR9]
1646 unsigned int __builtin_vec_first_mismatch_or_eos_index (vsc, vsc);
1647 VFIRSTMISMATCHOREOSINDEX_V16QI FIRSTMISMATCHOREOSINDEX_VSC
1648 unsigned int __builtin_vec_first_mismatch_or_eos_index (vuc, vuc);
1649 VFIRSTMISMATCHOREOSINDEX_V16QI FIRSTMISMATCHOREOSINDEX_VUC
1650 unsigned int __builtin_vec_first_mismatch_or_eos_index (vss, vss);
1651 VFIRSTMISMATCHOREOSINDEX_V8HI FIRSTMISMATCHOREOSINDEX_VSS
1652 unsigned int __builtin_vec_first_mismatch_or_eos_index (vus, vus);
1653 VFIRSTMISMATCHOREOSINDEX_V8HI FIRSTMISMATCHOREOSINDEX_VUS
1654 unsigned int __builtin_vec_first_mismatch_or_eos_index (vsi, vsi);
1655 VFIRSTMISMATCHOREOSINDEX_V4SI FIRSTMISMATCHOREOSINDEX_VSI
1656 unsigned int __builtin_vec_first_mismatch_or_eos_index (vui, vui);
1657 VFIRSTMISMATCHOREOSINDEX_V4SI FIRSTMISMATCHOREOSINDEX_VUI
1659 [VEC_FLOAT, vec_float, __builtin_vec_float]
1660 vf __builtin_vec_float (vsi);
1662 vf __builtin_vec_float (vui);
1665 [VEC_FLOAT2, vec_float2, __builtin_vec_float2]
1666 vf __builtin_vec_float2 (vsll, vsll);
1668 vf __builtin_vec_float2 (vull, vull);
1670 vf __builtin_vec_float2 (vd, vd);
1673 [VEC_FLOATE, vec_floate, __builtin_vec_floate]
1674 vf __builtin_vec_floate (vsll);
1676 vf __builtin_vec_floate (vull);
1678 vf __builtin_vec_floate (vd);
1681 [VEC_FLOATO, vec_floato, __builtin_vec_floato]
1682 vf __builtin_vec_floato (vsll);
1684 vf __builtin_vec_floato (vull);
1686 vf __builtin_vec_floato (vd);
1689 [VEC_FLOOR, vec_floor, __builtin_vec_floor]
1690 vf __builtin_vec_floor (vf);
1692 vd __builtin_vec_floor (vd);
1695 [VEC_GB, vec_gb, __builtin_vec_vgbbd, _ARCH_PWR8]
1696 vsc __builtin_vec_vgbbd (vsc);
1698 vuc __builtin_vec_vgbbd (vuc);
1701 [VEC_GENBM, vec_genbm, __builtin_vec_mtvsrbm, _ARCH_PWR10]
1702 vuc __builtin_vec_mtvsrbm (unsigned long long);
1705 [VEC_GENHM, vec_genhm, __builtin_vec_mtvsrhm, _ARCH_PWR10]
1706 vus __builtin_vec_mtvsrhm (unsigned long long);
1709 [VEC_GENWM, vec_genwm, __builtin_vec_mtvsrwm, _ARCH_PWR10]
1710 vui __builtin_vec_mtvsrwm (unsigned long long);
1713 [VEC_GENDM, vec_gendm, __builtin_vec_mtvsrdm, _ARCH_PWR10]
1714 vull __builtin_vec_mtvsrdm (unsigned long long);
1717 [VEC_GENQM, vec_genqm, __builtin_vec_mtvsrqm, _ARCH_PWR10]
1718 vuq __builtin_vec_mtvsrqm (unsigned long long);
1721 [VEC_GENPCVM, vec_genpcvm, __builtin_vec_xxgenpcvm, _ARCH_PWR10]
1722 vuc __builtin_vec_xxgenpcvm (vuc, const int);
1724 vus __builtin_vec_xxgenpcvm (vus, const int);
1726 vui __builtin_vec_xxgenpcvm (vui, const int);
1728 vull __builtin_vec_xxgenpcvm (vull, const int);
1731 [VEC_GNB, vec_gnb, __builtin_vec_gnb, _ARCH_PWR10]
1732 unsigned long long __builtin_vec_gnb (vuq, const int);
1735 ; There are no actual builtins for vec_insert. There is special handling for
1736 ; this in altivec_resolve_overloaded_builtin in rs6000-c.c, where the call
1737 ; is replaced by "pointer tricks." The single overload here causes
1738 ; __builtin_vec_insert to be registered with the front end so this can happen.
1739 [VEC_INSERT, vec_insert, __builtin_vec_insert]
1740 vsi __builtin_vec_insert (vsi, vsi, signed int);
1741 XXPERMDI_4SI INSERT_FAKERY
1743 [VEC_INSERTH, vec_inserth, __builtin_vec_inserth, _ARCH_PWR10]
1744 vuc __builtin_vec_inserth (unsigned char, vuc, unsigned int);
1746 vuc __builtin_vec_inserth (vuc, vuc, unsigned int);
1748 vus __builtin_vec_inserth (unsigned short, vus, unsigned int);
1750 vus __builtin_vec_inserth (vus, vus, unsigned int);
1752 vui __builtin_vec_inserth (unsigned int, vui, unsigned int);
1754 vui __builtin_vec_inserth (vui, vui, unsigned int);
1756 vull __builtin_vec_inserth (unsigned long long, vull, unsigned int);
1759 [VEC_INSERTL, vec_insertl, __builtin_vec_insertl, _ARCH_PWR10]
1760 vuc __builtin_vec_insertl (unsigned char, vuc, unsigned int);
1762 vuc __builtin_vec_insertl (vuc, vuc, unsigned int);
1764 vus __builtin_vec_insertl (unsigned short, vus, unsigned int);
1766 vus __builtin_vec_insertl (vus, vus, unsigned int);
1768 vui __builtin_vec_insertl (unsigned int, vui, unsigned int);
1770 vui __builtin_vec_insertl (vui, vui, unsigned int);
1772 vull __builtin_vec_insertl (unsigned long long, vull, unsigned int);
1775 [VEC_INSERT4B, vec_insert4b, __builtin_vec_insert4b, _ARCH_PWR9]
1776 vuc __builtin_vec_insert4b (vsi, vuc, const int);
1778 vuc __builtin_vec_insert4b (vui, vuc, const int);
1781 [VEC_LD, vec_ld, __builtin_vec_ld]
1782 vsc __builtin_vec_ld (signed long, const vsc *);
1783 LVX_V16QI LVX_V16QI_VSC
1784 vsc __builtin_vec_ld (signed long, const signed char *);
1785 LVX_V16QI LVX_V16QI_SC
1786 vuc __builtin_vec_ld (signed long, const vuc *);
1787 LVX_V16QI LVX_V16QI_VUC
1788 vuc __builtin_vec_ld (signed long, const unsigned char *);
1789 LVX_V16QI LVX_V16QI_UC
1790 vbc __builtin_vec_ld (signed long, const vbc *);
1791 LVX_V16QI LVX_V16QI_VBC
1792 vss __builtin_vec_ld (signed long, const vss *);
1793 LVX_V8HI LVX_V8HI_VSS
1794 vss __builtin_vec_ld (signed long, const signed short *);
1795 LVX_V8HI LVX_V8HI_SS
1796 vus __builtin_vec_ld (signed long, const vus *);
1797 LVX_V8HI LVX_V8HI_VUS
1798 vus __builtin_vec_ld (signed long, const unsigned short *);
1799 LVX_V8HI LVX_V8HI_US
1800 vbs __builtin_vec_ld (signed long, const vbs *);
1801 LVX_V8HI LVX_V8HI_VBS
1802 vp __builtin_vec_ld (signed long, const vp *);
1803 LVX_V8HI LVX_V8HI_VP
1804 vsi __builtin_vec_ld (signed long, const vsi *);
1805 LVX_V4SI LVX_V4SI_VSI
1806 vsi __builtin_vec_ld (signed long, const signed int *);
1807 LVX_V4SI LVX_V4SI_SI
1808 vui __builtin_vec_ld (signed long, const vui *);
1809 LVX_V4SI LVX_V4SI_VUI
1810 vui __builtin_vec_ld (signed long, const unsigned int *);
1811 LVX_V4SI LVX_V4SI_UI
1812 vbi __builtin_vec_ld (signed long, const vbi *);
1813 LVX_V4SI LVX_V4SI_VBI
1814 vsll __builtin_vec_ld (signed long, const vsll *);
1815 LVX_V2DI LVX_V2DI_VSLL
1816 vsll __builtin_vec_ld (signed long, const signed long long *);
1817 LVX_V2DI LVX_V2DI_SLL
1818 vull __builtin_vec_ld (signed long, const vull *);
1819 LVX_V2DI LVX_V2DI_VULL
1820 vull __builtin_vec_ld (signed long, const unsigned long long *);
1821 LVX_V2DI LVX_V2DI_ULL
1822 vbll __builtin_vec_ld (signed long, const vbll *);
1823 LVX_V2DI LVX_V2DI_VBLL
1824 vsq __builtin_vec_ld (signed long, const vsq *);
1825 LVX_V1TI LVX_V1TI_VSQ
1826 vuq __builtin_vec_ld (signed long, const vuq *);
1827 LVX_V1TI LVX_V1TI_VUQ
1828 vsq __builtin_vec_ld (signed long, const __int128 *);
1829 LVX_V1TI LVX_V1TI_TI
1830 vuq __builtin_vec_ld (signed long, const unsigned __int128 *);
1831 LVX_V1TI LVX_V1TI_UTI
1832 vf __builtin_vec_ld (signed long, const vf *);
1833 LVX_V4SF LVX_V4SF_VF
1834 vf __builtin_vec_ld (signed long, const float *);
1836 vd __builtin_vec_ld (signed long, const vd *);
1837 LVX_V2DF LVX_V2DF_VD
1838 vd __builtin_vec_ld (signed long, const double *);
1840 ; The following variants are deprecated.
1841 vsi __builtin_vec_ld (signed long, const long *);
1842 LVX_V4SI LVX_V4SI_SL
1843 vui __builtin_vec_ld (signed long, const unsigned long *);
1844 LVX_V4SI LVX_V4SI_UL
1846 [VEC_LDE, vec_lde, __builtin_vec_lde]
1847 vsc __builtin_vec_lde (signed long, const signed char *);
1849 vuc __builtin_vec_lde (signed long, const unsigned char *);
1851 vss __builtin_vec_lde (signed long, const signed short *);
1853 vus __builtin_vec_lde (signed long, const unsigned short *);
1855 vsi __builtin_vec_lde (signed long, const signed int *);
1857 vui __builtin_vec_lde (signed long, const unsigned int *);
1859 vf __builtin_vec_lde (signed long, const float *);
1861 ; The following variants are deprecated.
1862 vsi __builtin_vec_lde (signed long, const long *);
1864 vui __builtin_vec_lde (signed long, const unsigned long *);
1867 [VEC_LDL, vec_ldl, __builtin_vec_ldl]
1868 vsc __builtin_vec_ldl (signed long, const vsc *);
1869 LVXL_V16QI LVXL_V16QI_VSC
1870 vsc __builtin_vec_ldl (signed long, const signed char *);
1871 LVXL_V16QI LVXL_V16QI_SC
1872 vuc __builtin_vec_ldl (signed long, const vuc *);
1873 LVXL_V16QI LVXL_V16QI_VUC
1874 vuc __builtin_vec_ldl (signed long, const unsigned char *);
1875 LVXL_V16QI LVXL_V16QI_UC
1876 vbc __builtin_vec_ldl (signed long, const vbc *);
1877 LVXL_V16QI LVXL_V16QI_VBC
1878 vss __builtin_vec_ldl (signed long, const vss *);
1879 LVXL_V8HI LVXL_V8HI_VSS
1880 vss __builtin_vec_ldl (signed long, const signed short *);
1881 LVXL_V8HI LVXL_V8HI_SS
1882 vus __builtin_vec_ldl (signed long, const vus *);
1883 LVXL_V8HI LVXL_V8HI_VUS
1884 vus __builtin_vec_ldl (signed long, const unsigned short *);
1885 LVXL_V8HI LVXL_V8HI_US
1886 vbs __builtin_vec_ldl (signed long, const vbs *);
1887 LVXL_V8HI LVXL_V8HI_VBS
1888 vp __builtin_vec_ldl (signed long, const vp *);
1889 LVXL_V8HI LVXL_V8HI_VP
1890 vsi __builtin_vec_ldl (signed long, const vsi *);
1891 LVXL_V4SI LVXL_V4SI_VSI
1892 vsi __builtin_vec_ldl (signed long, const signed int *);
1893 LVXL_V4SI LVXL_V4SI_SI
1894 vui __builtin_vec_ldl (signed long, const vui *);
1895 LVXL_V4SI LVXL_V4SI_VUI
1896 vui __builtin_vec_ldl (signed long, const unsigned int *);
1897 LVXL_V4SI LVXL_V4SI_UI
1898 vbi __builtin_vec_ldl (signed long, const vbi *);
1899 LVXL_V4SI LVXL_V4SI_VBI
1900 vsll __builtin_vec_ldl (signed long, const vsll *);
1901 LVXL_V2DI LVXL_V2DI_VSLL
1902 vsll __builtin_vec_ldl (signed long, const signed long long *);
1903 LVXL_V2DI LVXL_V2DI_SLL
1904 vull __builtin_vec_ldl (signed long, const vull *);
1905 LVXL_V2DI LVXL_V2DI_VULL
1906 vull __builtin_vec_ldl (signed long, const unsigned long long *);
1907 LVXL_V2DI LVXL_V2DI_ULL
1908 vbll __builtin_vec_ldl (signed long, const vbll *);
1909 LVXL_V2DI LVXL_V2DI_VBLL
1910 vf __builtin_vec_ldl (signed long, const vf *);
1911 LVXL_V4SF LVXL_V4SF_VF
1912 vf __builtin_vec_ldl (signed long, const float *);
1913 LVXL_V4SF LVXL_V4SF_F
1914 vd __builtin_vec_ldl (signed long, const vd *);
1915 LVXL_V2DF LVXL_V2DF_VD
1916 vd __builtin_vec_ldl (signed long, const double *);
1917 LVXL_V2DF LVXL_V2DF_D
1919 [VEC_LOGE, vec_loge, __builtin_vec_loge]
1920 vf __builtin_vec_loge (vf);
1923 [VEC_LVLX, vec_lvlx, __builtin_vec_lvlx, __PPU__]
1924 vbc __builtin_vec_lvlx (signed long, const vbc *);
1926 vsc __builtin_vec_lvlx (signed long, const vsc *);
1928 vsc __builtin_vec_lvlx (signed long, const signed char *);
1930 vuc __builtin_vec_lvlx (signed long, const vuc *);
1932 vuc __builtin_vec_lvlx (signed long, const unsigned char *);
1934 vbs __builtin_vec_lvlx (signed long, const vbs *);
1936 vss __builtin_vec_lvlx (signed long, const vss *);
1938 vss __builtin_vec_lvlx (signed long, const signed short *);
1940 vus __builtin_vec_lvlx (signed long, const vus *);
1942 vus __builtin_vec_lvlx (signed long, const unsigned short *);
1944 vp __builtin_vec_lvlx (signed long, const vp *);
1946 vbi __builtin_vec_lvlx (signed long, const vbi *);
1948 vsi __builtin_vec_lvlx (signed long, const vsi *);
1950 vsi __builtin_vec_lvlx (signed long, const signed int *);
1952 vui __builtin_vec_lvlx (signed long, const vui *);
1954 vui __builtin_vec_lvlx (signed long, const unsigned int *);
1956 vf __builtin_vec_lvlx (signed long, const vf *);
1958 vf __builtin_vec_lvlx (signed long, const float *);
1961 [VEC_LVLXL, vec_lvlxl, __builtin_vec_lvlxl, __PPU__]
1962 vbc __builtin_vec_lvlxl (signed long, const vbc *);
1964 vsc __builtin_vec_lvlxl (signed long, const vsc *);
1966 vsc __builtin_vec_lvlxl (signed long, const signed char *);
1968 vuc __builtin_vec_lvlxl (signed long, const vuc *);
1970 vuc __builtin_vec_lvlxl (signed long, const unsigned char *);
1972 vbs __builtin_vec_lvlxl (signed long, const vbs *);
1974 vss __builtin_vec_lvlxl (signed long, const vss *);
1976 vss __builtin_vec_lvlxl (signed long, const signed short *);
1978 vus __builtin_vec_lvlxl (signed long, const vus *);
1980 vus __builtin_vec_lvlxl (signed long, const unsigned short *);
1982 vp __builtin_vec_lvlxl (signed long, const vp *);
1984 vbi __builtin_vec_lvlxl (signed long, const vbi *);
1986 vsi __builtin_vec_lvlxl (signed long, const vsi *);
1988 vsi __builtin_vec_lvlxl (signed long, const signed int *);
1990 vui __builtin_vec_lvlxl (signed long, const vui *);
1992 vui __builtin_vec_lvlxl (signed long, const unsigned int *);
1994 vf __builtin_vec_lvlxl (signed long, const vf *);
1996 vf __builtin_vec_lvlxl (signed long, const float *);
1999 [VEC_LVRX, vec_lvrx, __builtin_vec_lvrx, __PPU__]
2000 vbc __builtin_vec_lvrx (signed long, const vbc *);
2002 vsc __builtin_vec_lvrx (signed long, const vsc *);
2004 vsc __builtin_vec_lvrx (signed long, const signed char *);
2006 vuc __builtin_vec_lvrx (signed long, const vuc *);
2008 vuc __builtin_vec_lvrx (signed long, const unsigned char *);
2010 vbs __builtin_vec_lvrx (signed long, const vbs *);
2012 vss __builtin_vec_lvrx (signed long, const vss *);
2014 vss __builtin_vec_lvrx (signed long, const signed short *);
2016 vus __builtin_vec_lvrx (signed long, const vus *);
2018 vus __builtin_vec_lvrx (signed long, const unsigned short *);
2020 vp __builtin_vec_lvrx (signed long, const vp *);
2022 vbi __builtin_vec_lvrx (signed long, const vbi *);
2024 vsi __builtin_vec_lvrx (signed long, const vsi *);
2026 vsi __builtin_vec_lvrx (signed long, const signed int *);
2028 vui __builtin_vec_lvrx (signed long, const vui *);
2030 vui __builtin_vec_lvrx (signed long, const unsigned int *);
2032 vf __builtin_vec_lvrx (signed long, const vf *);
2034 vf __builtin_vec_lvrx (signed long, const float *);
2037 [VEC_LVRXL, vec_lvrxl, __builtin_vec_lvrxl, __PPU__]
2038 vbc __builtin_vec_lvrxl (signed long, const vbc *);
2040 vsc __builtin_vec_lvrxl (signed long, const vsc *);
2042 vsc __builtin_vec_lvrxl (signed long, const signed char *);
2044 vuc __builtin_vec_lvrxl (signed long, const vuc *);
2046 vuc __builtin_vec_lvrxl (signed long, const unsigned char *);
2048 vbs __builtin_vec_lvrxl (signed long, const vbs *);
2050 vss __builtin_vec_lvrxl (signed long, const vss *);
2052 vss __builtin_vec_lvrxl (signed long, const signed short *);
2054 vus __builtin_vec_lvrxl (signed long, const vus *);
2056 vus __builtin_vec_lvrxl (signed long, const unsigned short *);
2058 vp __builtin_vec_lvrxl (signed long, const vp *);
2060 vbi __builtin_vec_lvrxl (signed long, const vbi *);
2062 vsi __builtin_vec_lvrxl (signed long, const vsi *);
2064 vsi __builtin_vec_lvrxl (signed long, const signed int *);
2066 vui __builtin_vec_lvrxl (signed long, const vui *);
2068 vui __builtin_vec_lvrxl (signed long, const unsigned int *);
2070 vf __builtin_vec_lvrxl (signed long, const vf *);
2072 vf __builtin_vec_lvrxl (signed long, const float *);
2075 [VEC_LVSL, vec_lvsl, __builtin_vec_lvsl]
2076 vuc __builtin_vec_lvsl (signed long, const unsigned char *);
2078 vuc __builtin_vec_lvsl (signed long, const signed char *);
2080 vuc __builtin_vec_lvsl (signed long, const char *);
2082 vuc __builtin_vec_lvsl (signed long, const unsigned short *);
2084 vuc __builtin_vec_lvsl (signed long, const signed short *);
2086 vuc __builtin_vec_lvsl (signed long, const unsigned int *);
2088 vuc __builtin_vec_lvsl (signed long, const signed int *);
2090 vuc __builtin_vec_lvsl (signed long, const unsigned long *);
2092 vuc __builtin_vec_lvsl (signed long, const signed long *);
2094 vuc __builtin_vec_lvsl (signed long, const unsigned long long *);
2096 vuc __builtin_vec_lvsl (signed long, const signed long long *);
2098 vuc __builtin_vec_lvsl (signed long, const float *);
2100 vuc __builtin_vec_lvsl (signed long, const double *);
2103 [VEC_LVSR, vec_lvsr, __builtin_vec_lvsr]
2104 vuc __builtin_vec_lvsr (signed long, const unsigned char *);
2106 vuc __builtin_vec_lvsr (signed long, const signed char *);
2108 vuc __builtin_vec_lvsr (signed long, const char *);
2110 vuc __builtin_vec_lvsr (signed long, const unsigned short *);
2112 vuc __builtin_vec_lvsr (signed long, const signed short *);
2114 vuc __builtin_vec_lvsr (signed long, const unsigned int *);
2116 vuc __builtin_vec_lvsr (signed long, const signed int *);
2118 vuc __builtin_vec_lvsr (signed long, const unsigned long *);
2120 vuc __builtin_vec_lvsr (signed long, const signed long *);
2122 vuc __builtin_vec_lvsr (signed long, const unsigned long long *);
2124 vuc __builtin_vec_lvsr (signed long, const signed long long *);
2126 vuc __builtin_vec_lvsr (signed long, const float *);
2128 vuc __builtin_vec_lvsr (signed long, const double *);
2131 [VEC_LXVL, vec_xl_len, __builtin_vec_lxvl, _ARCH_PPC64_PWR9]
2132 vsc __builtin_vec_lxvl (const signed char *, unsigned int);
2134 vuc __builtin_vec_lxvl (const unsigned char *, unsigned int);
2136 vss __builtin_vec_lxvl (const signed short *, unsigned int);
2138 vus __builtin_vec_lxvl (const unsigned short *, unsigned int);
2140 vsi __builtin_vec_lxvl (const signed int *, unsigned int);
2142 vui __builtin_vec_lxvl (const unsigned int *, unsigned int);
2144 vsll __builtin_vec_lxvl (const signed long long *, unsigned int);
2146 vull __builtin_vec_lxvl (const unsigned long long *, unsigned int);
2148 vsq __builtin_vec_lxvl (const signed __int128 *, unsigned int);
2150 vuq __builtin_vec_lxvl (const unsigned __int128 *, unsigned int);
2152 vf __builtin_vec_lxvl (const float *, unsigned int);
2154 vd __builtin_vec_lxvl (const double *, unsigned int);
2157 [VEC_MADD, vec_madd, __builtin_vec_madd]
2158 vss __builtin_vec_madd (vss, vss, vss);
2159 VMLADDUHM VMLADDUHM_VSS
2160 vss __builtin_vec_madd (vss, vus, vus);
2161 VMLADDUHM VMLADDUHM_VSSVUS
2162 vss __builtin_vec_madd (vus, vss, vss);
2163 VMLADDUHM VMLADDUHM_VUSVSS
2164 vus __builtin_vec_madd (vus, vus, vus);
2165 VMLADDUHM VMLADDUHM_VUS
2166 vf __builtin_vec_madd (vf, vf, vf);
2168 vd __builtin_vec_madd (vd, vd, vd);
2171 [VEC_MADDS, vec_madds, __builtin_vec_madds]
2172 vss __builtin_vec_madds (vss, vss, vss);
2175 [VEC_MAX, vec_max, __builtin_vec_max]
2176 vsc __builtin_vec_max (vsc, vsc);
2178 vuc __builtin_vec_max (vuc, vuc);
2180 vss __builtin_vec_max (vss, vss);
2182 vus __builtin_vec_max (vus, vus);
2184 vsi __builtin_vec_max (vsi, vsi);
2186 vui __builtin_vec_max (vui, vui);
2188 vsll __builtin_vec_max (vsll, vsll);
2190 vull __builtin_vec_max (vull, vull);
2192 vf __builtin_vec_max (vf, vf);
2194 vd __builtin_vec_max (vd, vd);
2196 ; The following variants are deprecated.
2197 vsc __builtin_vec_max (vsc, vbc);
2199 vsc __builtin_vec_max (vbc, vsc);
2201 vuc __builtin_vec_max (vuc, vbc);
2203 vuc __builtin_vec_max (vbc, vuc);
2205 vss __builtin_vec_max (vss, vbs);
2207 vss __builtin_vec_max (vbs, vss);
2209 vus __builtin_vec_max (vus, vbs);
2211 vus __builtin_vec_max (vbs, vus);
2213 vsi __builtin_vec_max (vsi, vbi);
2215 vsi __builtin_vec_max (vbi, vsi);
2217 vui __builtin_vec_max (vui, vbi);
2219 vui __builtin_vec_max (vbi, vui);
2221 vsll __builtin_vec_max (vsll, vbll);
2223 vsll __builtin_vec_max (vbll, vsll);
2225 vull __builtin_vec_max (vull, vbll);
2227 vull __builtin_vec_max (vbll, vull);
2230 [VEC_MERGEE, vec_mergee, __builtin_vec_vmrgew, _ARCH_PWR8]
2231 vsi __builtin_vec_vmrgew (vsi, vsi);
2232 VMRGEW_V4SI VMRGEW_VSI
2233 vui __builtin_vec_vmrgew (vui, vui);
2234 VMRGEW_V4SI VMRGEW_VUI
2235 vbi __builtin_vec_vmrgew (vbi, vbi);
2236 VMRGEW_V4SI VMRGEW_VBI
2237 vsll __builtin_vec_vmrgew (vsll, vsll);
2238 VMRGEW_V2DI VMRGEW_VSLL
2239 vull __builtin_vec_vmrgew (vull, vull);
2240 VMRGEW_V2DI VMRGEW_VULL
2241 vbll __builtin_vec_vmrgew (vbll, vbll);
2242 VMRGEW_V2DI VMRGEW_VBLL
2243 vf __builtin_vec_vmrgew (vf, vf);
2245 vd __builtin_vec_vmrgew (vd, vd);
2248 [VEC_MERGEH, vec_mergeh, __builtin_vec_mergeh]
2249 vbc __builtin_vec_mergeh (vbc, vbc);
2251 vsc __builtin_vec_mergeh (vsc, vsc);
2253 vuc __builtin_vec_mergeh (vuc, vuc);
2255 vbs __builtin_vec_mergeh (vbs, vbs);
2257 vss __builtin_vec_mergeh (vss, vss);
2259 vus __builtin_vec_mergeh (vus, vus);
2261 vp __builtin_vec_mergeh (vp, vp);
2263 vbi __builtin_vec_mergeh (vbi, vbi);
2265 vsi __builtin_vec_mergeh (vsi, vsi);
2267 vui __builtin_vec_mergeh (vui, vui);
2269 vbll __builtin_vec_mergeh (vbll, vbll);
2270 VEC_MERGEH_V2DI VEC_MERGEH_VBLL
2271 vsll __builtin_vec_mergeh (vsll, vsll);
2272 VEC_MERGEH_V2DI VEC_MERGEH_VSLL
2273 vull __builtin_vec_mergeh (vull, vull);
2274 VEC_MERGEH_V2DI VEC_MERGEH_VULL
2275 vf __builtin_vec_mergeh (vf, vf);
2277 vd __builtin_vec_mergeh (vd, vd);
2279 ; The following variants are deprecated.
2280 vsll __builtin_vec_mergeh (vsll, vbll);
2281 VEC_MERGEH_V2DI VEC_MERGEH_VSLL_VBLL
2282 vsll __builtin_vec_mergeh (vbll, vsll);
2283 VEC_MERGEH_V2DI VEC_MERGEH_VBLL_VSLL
2284 vull __builtin_vec_mergeh (vull, vbll);
2285 VEC_MERGEH_V2DI VEC_MERGEH_VULL_VBLL
2286 vull __builtin_vec_mergeh (vbll, vull);
2287 VEC_MERGEH_V2DI VEC_MERGEH_VBLL_VULL
2289 [VEC_MERGEL, vec_mergel, __builtin_vec_mergel]
2290 vbc __builtin_vec_mergel (vbc, vbc);
2292 vsc __builtin_vec_mergel (vsc, vsc);
2294 vuc __builtin_vec_mergel (vuc, vuc);
2296 vbs __builtin_vec_mergel (vbs, vbs);
2298 vss __builtin_vec_mergel (vss, vss);
2300 vus __builtin_vec_mergel (vus, vus);
2302 vp __builtin_vec_mergel (vp, vp);
2304 vbi __builtin_vec_mergel (vbi, vbi);
2306 vsi __builtin_vec_mergel (vsi, vsi);
2308 vui __builtin_vec_mergel (vui, vui);
2310 vbll __builtin_vec_mergel (vbll, vbll);
2311 VEC_MERGEL_V2DI VEC_MERGEL_VBLL
2312 vsll __builtin_vec_mergel (vsll, vsll);
2313 VEC_MERGEL_V2DI VEC_MERGEL_VSLL
2314 vull __builtin_vec_mergel (vull, vull);
2315 VEC_MERGEL_V2DI VEC_MERGEL_VULL
2316 vf __builtin_vec_mergel (vf, vf);
2318 vd __builtin_vec_mergel (vd, vd);
2320 ; The following variants are deprecated.
2321 vsll __builtin_vec_mergel (vsll, vbll);
2322 VEC_MERGEL_V2DI VEC_MERGEL_VSLL_VBLL
2323 vsll __builtin_vec_mergel (vbll, vsll);
2324 VEC_MERGEL_V2DI VEC_MERGEL_VBLL_VSLL
2325 vull __builtin_vec_mergel (vull, vbll);
2326 VEC_MERGEL_V2DI VEC_MERGEL_VULL_VBLL
2327 vull __builtin_vec_mergel (vbll, vull);
2328 VEC_MERGEL_V2DI VEC_MERGEL_VBLL_VULL
2330 [VEC_MERGEO, vec_mergeo, __builtin_vec_vmrgow, _ARCH_PWR8]
2331 vsi __builtin_vec_vmrgow (vsi, vsi);
2332 VMRGOW_V4SI VMRGOW_VSI
2333 vui __builtin_vec_vmrgow (vui, vui);
2334 VMRGOW_V4SI VMRGOW_VUI
2335 vbi __builtin_vec_vmrgow (vbi, vbi);
2336 VMRGOW_V4SI VMRGOW_VBI
2337 vsll __builtin_vec_vmrgow (vsll, vsll);
2338 VMRGOW_V2DI VMRGOW_VSLL
2339 vull __builtin_vec_vmrgow (vull, vull);
2340 VMRGOW_V2DI VMRGOW_VULL
2341 vbll __builtin_vec_vmrgow (vbll, vbll);
2342 VMRGOW_V2DI VMRGOW_VBLL
2343 vf __builtin_vec_vmrgow (vf, vf);
2345 vd __builtin_vec_vmrgow (vd, vd);
2348 [VEC_MFVSCR, vec_mfvscr, __builtin_vec_mfvscr]
2349 vus __builtin_vec_mfvscr ();
2352 [VEC_MIN, vec_min, __builtin_vec_min]
2353 vsc __builtin_vec_min (vsc, vsc);
2355 vuc __builtin_vec_min (vuc, vuc);
2357 vss __builtin_vec_min (vss, vss);
2359 vus __builtin_vec_min (vus, vus);
2361 vsi __builtin_vec_min (vsi, vsi);
2363 vui __builtin_vec_min (vui, vui);
2365 vsll __builtin_vec_min (vsll, vsll);
2367 vull __builtin_vec_min (vull, vull);
2369 vf __builtin_vec_min (vf, vf);
2371 vd __builtin_vec_min (vd, vd);
2373 ; The following variants are deprecated.
2374 vsc __builtin_vec_min (vsc, vbc);
2376 vsc __builtin_vec_min (vbc, vsc);
2378 vuc __builtin_vec_min (vuc, vbc);
2380 vuc __builtin_vec_min (vbc, vuc);
2382 vss __builtin_vec_min (vss, vbs);
2384 vss __builtin_vec_min (vbs, vss);
2386 vus __builtin_vec_min (vus, vbs);
2388 vus __builtin_vec_min (vbs, vus);
2390 vsi __builtin_vec_min (vsi, vbi);
2392 vsi __builtin_vec_min (vbi, vsi);
2394 vui __builtin_vec_min (vui, vbi);
2396 vui __builtin_vec_min (vbi, vui);
2398 vsll __builtin_vec_min (vsll, vbll);
2400 vsll __builtin_vec_min (vbll, vsll);
2402 vull __builtin_vec_min (vull, vbll);
2404 vull __builtin_vec_min (vbll, vull);
2407 [VEC_MLADD, vec_mladd, __builtin_vec_mladd]
2408 vss __builtin_vec_mladd (vss, vss, vss);
2409 VMLADDUHM VMLADDUHM_VSS2
2410 vss __builtin_vec_mladd (vss, vus, vus);
2411 VMLADDUHM VMLADDUHM_VSSVUS2
2412 vss __builtin_vec_mladd (vus, vss, vss);
2413 VMLADDUHM VMLADDUHM_VUSVSS2
2414 vus __builtin_vec_mladd (vus, vus, vus);
2415 VMLADDUHM VMLADDUHM_VUS2
2417 [VEC_MOD, vec_mod, __builtin_vec_mod, _ARCH_PWR10]
2418 vsi __builtin_vec_mod (vsi, vsi);
2420 vui __builtin_vec_mod (vui, vui);
2422 vsll __builtin_vec_mod (vsll, vsll);
2424 vull __builtin_vec_mod (vull, vull);
2426 vsq __builtin_vec_mod (vsq, vsq);
2428 vuq __builtin_vec_mod (vuq, vuq);
2431 [VEC_MRADDS, vec_mradds, __builtin_vec_mradds]
2432 vss __builtin_vec_mradds (vss, vss, vss);
2435 [VEC_MSUB, vec_msub, __builtin_vec_msub, __VSX__]
2436 vf __builtin_vec_msub (vf, vf, vf);
2438 vd __builtin_vec_msub (vd, vd, vd);
2441 [VEC_MSUM, vec_msum, __builtin_vec_msum]
2442 vui __builtin_vec_msum (vuc, vuc, vui);
2444 vsi __builtin_vec_msum (vsc, vuc, vsi);
2446 vui __builtin_vec_msum (vus, vus, vui);
2448 vsi __builtin_vec_msum (vss, vss, vsi);
2450 vsq __builtin_vec_msum (vsll, vsll, vsq);
2452 vuq __builtin_vec_msum (vull, vull, vuq);
2455 [VEC_MSUMS, vec_msums, __builtin_vec_msums]
2456 vui __builtin_vec_msums (vus, vus, vui);
2458 vsi __builtin_vec_msums (vss, vss, vsi);
2461 [VEC_MTVSCR, vec_mtvscr, __builtin_vec_mtvscr]
2462 void __builtin_vec_mtvscr (vbc);
2464 void __builtin_vec_mtvscr (vsc);
2466 void __builtin_vec_mtvscr (vuc);
2468 void __builtin_vec_mtvscr (vbs);
2470 void __builtin_vec_mtvscr (vss);
2472 void __builtin_vec_mtvscr (vus);
2474 void __builtin_vec_mtvscr (vp);
2476 void __builtin_vec_mtvscr (vbi);
2478 void __builtin_vec_mtvscr (vsi);
2480 void __builtin_vec_mtvscr (vui);
2483 ; Note that the entries for VEC_MUL are currently ignored. See rs6000-c.c:
2484 ; altivec_resolve_overloaded_builtin, where there is special-case code for
2485 ; VEC_MUL. TODO: Is this really necessary? Investigate. Seven missing
2486 ; prototypes here...no corresponding builtins. Also added "vmulld" in P10
2487 ; which could be used instead of MUL_V2DI, conditionally?
2488 [VEC_MUL, vec_mul, __builtin_vec_mul]
2489 vsll __builtin_vec_mul (vsll, vsll);
2491 vf __builtin_vec_mul (vf, vf);
2493 vd __builtin_vec_mul (vd, vd);
2496 [VEC_MULE, vec_mule, __builtin_vec_mule]
2497 vss __builtin_vec_mule (vsc, vsc);
2499 vus __builtin_vec_mule (vuc, vuc);
2501 vsi __builtin_vec_mule (vss, vss);
2503 vui __builtin_vec_mule (vus, vus);
2505 vsll __builtin_vec_mule (vsi, vsi);
2507 vull __builtin_vec_mule (vui, vui);
2509 vsq __builtin_vec_mule (vsll, vsll);
2511 vuq __builtin_vec_mule (vull, vull);
2514 [VEC_MULH, vec_mulh, __builtin_vec_mulh, _ARCH_PWR10]
2515 vsi __builtin_vec_mulh (vsi, vsi);
2517 vui __builtin_vec_mulh (vui, vui);
2519 vsll __builtin_vec_mulh (vsll, vsll);
2521 vull __builtin_vec_mulh (vull, vull);
2524 [VEC_MULO, vec_mulo, __builtin_vec_mulo]
2525 vss __builtin_vec_mulo (vsc, vsc);
2527 vus __builtin_vec_mulo (vuc, vuc);
2529 vsi __builtin_vec_mulo (vss, vss);
2531 vui __builtin_vec_mulo (vus, vus);
2533 vsll __builtin_vec_mulo (vsi, vsi);
2535 vull __builtin_vec_mulo (vui, vui);
2537 vsq __builtin_vec_mulo (vsll, vsll);
2539 vuq __builtin_vec_mulo (vull, vull);
2542 [VEC_NABS, vec_nabs, __builtin_vec_nabs]
2543 vsc __builtin_vec_nabs (vsc);
2545 vss __builtin_vec_nabs (vss);
2547 vsi __builtin_vec_nabs (vsi);
2549 vsll __builtin_vec_nabs (vsll);
2551 vf __builtin_vec_nabs (vf);
2553 vd __builtin_vec_nabs (vd);
2556 [VEC_NAND, vec_nand, __builtin_vec_nand, _ARCH_PWR8]
2557 vsc __builtin_vec_nand (vsc, vsc);
2559 vuc __builtin_vec_nand (vuc, vuc);
2560 NAND_V16QI_UNS NAND_VUC
2561 vbc __builtin_vec_nand (vbc, vbc);
2562 NAND_V16QI_UNS NAND_VBC
2563 vss __builtin_vec_nand (vss, vss);
2565 vus __builtin_vec_nand (vus, vus);
2566 NAND_V8HI_UNS NAND_VUS
2567 vbs __builtin_vec_nand (vbs, vbs);
2568 NAND_V8HI_UNS NAND_VBS
2569 vsi __builtin_vec_nand (vsi, vsi);
2571 vui __builtin_vec_nand (vui, vui);
2572 NAND_V4SI_UNS NAND_VUI
2573 vbi __builtin_vec_nand (vbi, vbi);
2574 NAND_V4SI_UNS NAND_VBI
2575 vsll __builtin_vec_nand (vsll, vsll);
2577 vull __builtin_vec_nand (vull, vull);
2578 NAND_V2DI_UNS NAND_VULL
2579 vbll __builtin_vec_nand (vbll, vbll);
2580 NAND_V2DI_UNS NAND_VBLL
2581 vf __builtin_vec_nand (vf, vf);
2583 vd __builtin_vec_nand (vd, vd);
2585 ; The following variants are deprecated.
2586 vsc __builtin_vec_nand (vbc, vsc);
2587 NAND_V16QI NAND_VBC_VSC
2588 vsc __builtin_vec_nand (vsc, vbc);
2589 NAND_V16QI NAND_VSC_VBC
2590 vuc __builtin_vec_nand (vbc, vuc);
2591 NAND_V16QI_UNS NAND_VBC_VUC
2592 vuc __builtin_vec_nand (vuc, vbc);
2593 NAND_V16QI_UNS NAND_VUC_VBC
2594 vss __builtin_vec_nand (vbs, vss);
2595 NAND_V8HI NAND_VBS_VSS
2596 vss __builtin_vec_nand (vss, vbs);
2597 NAND_V8HI NAND_VSS_VBS
2598 vus __builtin_vec_nand (vbs, vus);
2599 NAND_V8HI_UNS NAND_VBS_VUS
2600 vus __builtin_vec_nand (vus, vbs);
2601 NAND_V8HI_UNS NAND_VUS_VBS
2602 vsi __builtin_vec_nand (vbi, vsi);
2603 NAND_V4SI NAND_VBI_VSI
2604 vsi __builtin_vec_nand (vsi, vbi);
2605 NAND_V4SI NAND_VSI_VBI
2606 vui __builtin_vec_nand (vbi, vui);
2607 NAND_V4SI_UNS NAND_VBI_VUI
2608 vui __builtin_vec_nand (vui, vbi);
2609 NAND_V4SI_UNS NAND_VUI_VBI
2610 vsll __builtin_vec_nand (vbll, vsll);
2611 NAND_V2DI NAND_VBLL_VSLL
2612 vsll __builtin_vec_nand (vsll, vbll);
2613 NAND_V2DI NAND_VSLL_VBLL
2614 vull __builtin_vec_nand (vbll, vull);
2615 NAND_V2DI_UNS NAND_VBLL_VULL
2616 vull __builtin_vec_nand (vull, vbll);
2617 NAND_V2DI_UNS NAND_VULL_VBLL
2619 [VEC_NCIPHER_BE, vec_ncipher_be, __builtin_vec_vncipher_be, _ARCH_PWR8]
2620 vuc __builtin_vec_vncipher_be (vuc, vuc);
2623 [VEC_NCIPHERLAST_BE, vec_ncipherlast_be, __builtin_vec_vncipherlast_be, _ARCH_PWR8]
2624 vuc __builtin_vec_vncipherlast_be (vuc, vuc);
2627 [VEC_NEARBYINT, vec_nearbyint, __builtin_vec_nearbyint, __VSX__]
2628 vf __builtin_vec_nearbyint (vf);
2630 vd __builtin_vec_nearbyint (vd);
2633 [VEC_NEG, vec_neg, __builtin_vec_neg]
2634 vsc __builtin_vec_neg (vsc);
2636 vss __builtin_vec_neg (vss);
2638 vsi __builtin_vec_neg (vsi);
2640 vsll __builtin_vec_neg (vsll);
2642 vf __builtin_vec_neg (vf);
2644 vd __builtin_vec_neg (vd);
2647 [VEC_NMADD, vec_nmadd, __builtin_vec_nmadd, __VSX__]
2648 vf __builtin_vec_nmadd (vf, vf, vf);
2650 vd __builtin_vec_nmadd (vd, vd, vd);
2653 [VEC_NMSUB, vec_nmsub, __builtin_vec_nmsub]
2654 vf __builtin_vec_nmsub (vf, vf, vf);
2656 vd __builtin_vec_nmsub (vd, vd, vd);
2659 [VEC_NOR, vec_nor, __builtin_vec_nor]
2660 vsc __builtin_vec_nor (vsc, vsc);
2662 vuc __builtin_vec_nor (vuc, vuc);
2663 VNOR_V16QI_UNS VNOR_V16QI_U
2664 vbc __builtin_vec_nor (vbc, vbc);
2665 VNOR_V16QI_UNS VNOR_V16QI_B
2666 vss __builtin_vec_nor (vss, vss);
2668 vus __builtin_vec_nor (vus, vus);
2669 VNOR_V8HI_UNS VNOR_V8HI_U
2670 vbs __builtin_vec_nor (vbs, vbs);
2671 VNOR_V8HI_UNS VNOR_V8HI_B
2672 vsi __builtin_vec_nor (vsi, vsi);
2674 vui __builtin_vec_nor (vui, vui);
2675 VNOR_V4SI_UNS VNOR_V4SI_U
2676 vbi __builtin_vec_nor (vbi, vbi);
2677 VNOR_V4SI_UNS VNOR_V4SI_B
2678 vsll __builtin_vec_nor (vsll, vsll);
2680 vull __builtin_vec_nor (vull, vull);
2681 VNOR_V2DI_UNS VNOR_V2DI_U
2682 vbll __builtin_vec_nor (vbll, vbll);
2683 VNOR_V2DI_UNS VNOR_V2DI_B
2684 vsq __builtin_vec_nor (vsq, vsq);
2685 VNOR_V1TI VNOR_V1TI_S
2686 vuq __builtin_vec_nor (vuq, vuq);
2687 VNOR_V1TI_UNS VNOR_V1TI_U
2688 vf __builtin_vec_nor (vf, vf);
2690 vd __builtin_vec_nor (vd, vd);
2692 ; The following variants are deprecated.
2693 vsll __builtin_vec_nor (vsll, vbll);
2694 VNOR_V2DI VNOR_VSLL_VBLL
2695 vsll __builtin_vec_nor (vbll, vsll);
2696 VNOR_V2DI VNOR_VBLL_VSLL
2697 vull __builtin_vec_nor (vull, vbll);
2698 VNOR_V2DI_UNS VNOR_VULL_VBLL
2699 vull __builtin_vec_nor (vbll, vull);
2700 VNOR_V2DI_UNS VNOR_VBLL_VULL
2701 vsq __builtin_vec_nor (vsq, vbq);
2702 VNOR_V1TI VNOR_VSQ_VBQ
2703 vsq __builtin_vec_nor (vbq, vsq);
2704 VNOR_V1TI VNOR_VBQ_VSQ
2705 vuq __builtin_vec_nor (vuq, vbq);
2706 VNOR_V1TI_UNS VNOR_VUQ_VBQ
2707 vuq __builtin_vec_nor (vbq, vuq);
2708 VNOR_V1TI_UNS VNOR_VBQ_VUQ
2710 [VEC_OR, vec_or, __builtin_vec_or]
2711 vsc __builtin_vec_or (vsc, vsc);
2713 vuc __builtin_vec_or (vuc, vuc);
2714 VOR_V16QI_UNS VOR_V16QI_U
2715 vbc __builtin_vec_or (vbc, vbc);
2716 VOR_V16QI_UNS VOR_V16QI_B
2717 vss __builtin_vec_or (vss, vss);
2719 vus __builtin_vec_or (vus, vus);
2720 VOR_V8HI_UNS VOR_V8HI_U
2721 vbs __builtin_vec_or (vbs, vbs);
2722 VOR_V8HI_UNS VOR_V8HI_B
2723 vsi __builtin_vec_or (vsi, vsi);
2725 vui __builtin_vec_or (vui, vui);
2726 VOR_V4SI_UNS VOR_V4SI_U
2727 vbi __builtin_vec_or (vbi, vbi);
2728 VOR_V4SI_UNS VOR_V4SI_B
2729 vsll __builtin_vec_or (vsll, vsll);
2731 vull __builtin_vec_or (vull, vull);
2732 VOR_V2DI_UNS VOR_V2DI_U
2733 vbll __builtin_vec_or (vbll, vbll);
2734 VOR_V2DI_UNS VOR_V2DI_B
2735 vf __builtin_vec_or (vf, vf);
2737 vd __builtin_vec_or (vd, vd);
2739 ; The following variants are deprecated.
2740 vsc __builtin_vec_or (vsc, vbc);
2741 VOR_V16QI VOR_VSC_VBC
2742 vsc __builtin_vec_or (vbc, vsc);
2743 VOR_V16QI VOR_VBC_VSC
2744 vuc __builtin_vec_or (vuc, vbc);
2745 VOR_V16QI_UNS VOR_V16QI_UB
2746 vuc __builtin_vec_or (vbc, vuc);
2747 VOR_V16QI_UNS VOR_V16QI_BU
2748 vss __builtin_vec_or (vss, vbs);
2749 VOR_V8HI VOR_VSS_VBS
2750 vss __builtin_vec_or (vbs, vss);
2751 VOR_V8HI VOR_VBS_VSS
2752 vus __builtin_vec_or (vus, vbs);
2753 VOR_V8HI_UNS VOR_V8HI_UB
2754 vus __builtin_vec_or (vbs, vus);
2755 VOR_V8HI_UNS VOR_V8HI_BU
2756 vsi __builtin_vec_or (vsi, vbi);
2757 VOR_V4SI VOR_VSI_VBI
2758 vsi __builtin_vec_or (vbi, vsi);
2759 VOR_V4SI VOR_VBI_VSI
2760 vui __builtin_vec_or (vui, vbi);
2761 VOR_V4SI_UNS VOR_V4SI_UB
2762 vui __builtin_vec_or (vbi, vui);
2763 VOR_V4SI_UNS VOR_V4SI_BU
2764 vsll __builtin_vec_or (vsll, vbll);
2765 VOR_V2DI VOR_VSLL_VBLL
2766 vsll __builtin_vec_or (vbll, vsll);
2767 VOR_V2DI VOR_VBLL_VSLL
2768 vull __builtin_vec_or (vull, vbll);
2769 VOR_V2DI_UNS VOR_V2DI_UB
2770 vull __builtin_vec_or (vbll, vull);
2771 VOR_V2DI_UNS VOR_V2DI_BU
2772 vf __builtin_vec_or (vf, vbi);
2774 vf __builtin_vec_or (vbi, vf);
2776 vd __builtin_vec_or (vd, vbll);
2777 VOR_V2DF VOR_VD_VBLL
2778 vd __builtin_vec_or (vbll, vd);
2779 VOR_V2DF VOR_VBLL_VD
2781 [VEC_ORC, vec_orc, __builtin_vec_orc, _ARCH_PWR8]
2782 vsc __builtin_vec_orc (vsc, vsc);
2784 vuc __builtin_vec_orc (vuc, vuc);
2785 ORC_V16QI_UNS ORC_VUC
2786 vbc __builtin_vec_orc (vbc, vbc);
2787 ORC_V16QI_UNS ORC_VBC
2788 vss __builtin_vec_orc (vss, vss);
2790 vus __builtin_vec_orc (vus, vus);
2791 ORC_V8HI_UNS ORC_VUS
2792 vbs __builtin_vec_orc (vbs, vbs);
2793 ORC_V8HI_UNS ORC_VBS
2794 vsi __builtin_vec_orc (vsi, vsi);
2796 vui __builtin_vec_orc (vui, vui);
2797 ORC_V4SI_UNS ORC_VUI
2798 vbi __builtin_vec_orc (vbi, vbi);
2799 ORC_V4SI_UNS ORC_VBI
2800 vsll __builtin_vec_orc (vsll, vsll);
2802 vull __builtin_vec_orc (vull, vull);
2803 ORC_V2DI_UNS ORC_VULL
2804 vbll __builtin_vec_orc (vbll, vbll);
2805 ORC_V2DI_UNS ORC_VBLL
2806 vf __builtin_vec_orc (vf, vf);
2808 vd __builtin_vec_orc (vd, vd);
2810 ; The following variants are deprecated.
2811 vsc __builtin_vec_orc (vbc, vsc);
2812 ORC_V16QI ORC_VBC_VSC
2813 vsc __builtin_vec_orc (vsc, vbc);
2814 ORC_V16QI ORC_VSC_VBC
2815 vuc __builtin_vec_orc (vbc, vuc);
2816 ORC_V16QI_UNS ORC_VBC_VUC
2817 vuc __builtin_vec_orc (vuc, vbc);
2818 ORC_V16QI_UNS ORC_VUC_VBC
2819 vss __builtin_vec_orc (vbs, vss);
2820 ORC_V8HI ORC_VBS_VSS
2821 vss __builtin_vec_orc (vss, vbs);
2822 ORC_V8HI ORC_VSS_VBS
2823 vus __builtin_vec_orc (vbs, vus);
2824 ORC_V8HI_UNS ORC_VBS_VUS
2825 vus __builtin_vec_orc (vus, vbs);
2826 ORC_V8HI_UNS ORC_VUS_VBS
2827 vsi __builtin_vec_orc (vbi, vsi);
2828 ORC_V4SI ORC_VBI_VSI
2829 vsi __builtin_vec_orc (vsi, vbi);
2830 ORC_V4SI ORC_VSI_VBI
2831 vui __builtin_vec_orc (vbi, vui);
2832 ORC_V4SI_UNS ORC_VBI_VUI
2833 vui __builtin_vec_orc (vui, vbi);
2834 ORC_V4SI_UNS ORC_VUI_VBI
2835 vsll __builtin_vec_orc (vbll, vsll);
2836 ORC_V2DI ORC_VBLL_VSLL
2837 vsll __builtin_vec_orc (vsll, vbll);
2838 ORC_V2DI ORC_VSLL_VBLL
2839 vull __builtin_vec_orc (vbll, vull);
2840 ORC_V2DI_UNS ORC_VBLL_VULL
2841 vull __builtin_vec_orc (vull, vbll);
2842 ORC_V2DI_UNS ORC_VULL_VBLL
2844 [VEC_PACK, vec_pack, __builtin_vec_pack]
2845 vsc __builtin_vec_pack (vss, vss);
2847 vuc __builtin_vec_pack (vus, vus);
2849 vbc __builtin_vec_pack (vbs, vbs);
2851 vss __builtin_vec_pack (vsi, vsi);
2853 vus __builtin_vec_pack (vui, vui);
2855 vbs __builtin_vec_pack (vbi, vbi);
2857 vsi __builtin_vec_pack (vsll, vsll);
2858 VPKUDUM VPKUDUM_VSLL
2859 vui __builtin_vec_pack (vull, vull);
2860 VPKUDUM VPKUDUM_VULL
2861 vbi __builtin_vec_pack (vbll, vbll);
2862 VPKUDUM VPKUDUM_VBLL
2863 vf __builtin_vec_pack (vd, vd);
2864 FLOAT2_V2DF FLOAT2_V2DF_PACK
2866 [VEC_PACKPX, vec_packpx, __builtin_vec_packpx]
2867 vp __builtin_vec_packpx (vui, vui);
2870 [VEC_PACKS, vec_packs, __builtin_vec_packs]
2871 vuc __builtin_vec_packs (vus, vus);
2873 vsc __builtin_vec_packs (vss, vss);
2875 vus __builtin_vec_packs (vui, vui);
2877 vss __builtin_vec_packs (vsi, vsi);
2879 vui __builtin_vec_packs (vull, vull);
2881 vsi __builtin_vec_packs (vsll, vsll);
2884 [VEC_PACKSU, vec_packsu, __builtin_vec_packsu]
2885 vuc __builtin_vec_packsu (vus, vus);
2887 vuc __builtin_vec_packsu (vss, vss);
2889 vus __builtin_vec_packsu (vui, vui);
2891 vus __builtin_vec_packsu (vsi, vsi);
2893 vui __builtin_vec_packsu (vull, vull);
2895 vui __builtin_vec_packsu (vsll, vsll);
2898 [VEC_PDEP, vec_pdep, __builtin_vec_vpdepd, _ARCH_PWR10]
2899 vull __builtin_vec_vpdepd (vull, vull);
2902 [VEC_PERM, vec_perm, __builtin_vec_perm]
2903 vsc __builtin_vec_perm (vsc, vsc, vuc);
2905 vuc __builtin_vec_perm (vuc, vuc, vuc);
2906 VPERM_16QI_UNS VPERM_16QI_VUC
2907 vbc __builtin_vec_perm (vbc, vbc, vuc);
2908 VPERM_16QI_UNS VPERM_16QI_VBC
2909 vss __builtin_vec_perm (vss, vss, vuc);
2911 vus __builtin_vec_perm (vus, vus, vuc);
2912 VPERM_8HI_UNS VPERM_8HI_VUS
2913 vbs __builtin_vec_perm (vbs, vbs, vuc);
2914 VPERM_8HI_UNS VPERM_8HI_VBS
2915 vp __builtin_vec_perm (vp, vp, vuc);
2916 VPERM_8HI_UNS VPERM_8HI_VP
2917 vsi __builtin_vec_perm (vsi, vsi, vuc);
2919 vui __builtin_vec_perm (vui, vui, vuc);
2920 VPERM_4SI_UNS VPERM_4SI_VUI
2921 vbi __builtin_vec_perm (vbi, vbi, vuc);
2922 VPERM_4SI_UNS VPERM_4SI_VBI
2923 vsll __builtin_vec_perm (vsll, vsll, vuc);
2925 vull __builtin_vec_perm (vull, vull, vuc);
2926 VPERM_2DI_UNS VPERM_2DI_VULL
2927 vbll __builtin_vec_perm (vbll, vbll, vuc);
2928 VPERM_2DI_UNS VPERM_2DI_VBLL
2929 vf __builtin_vec_perm (vf, vf, vuc);
2931 vd __builtin_vec_perm (vd, vd, vuc);
2933 vsq __builtin_vec_perm (vsq, vsq, vuc);
2935 vuq __builtin_vec_perm (vuq, vuq, vuc);
2937 ; The following variants are deprecated.
2938 vsc __builtin_vec_perm (vsc, vuc, vuc);
2939 VPERM_16QI VPERM_VSC_VUC_VUC
2940 vbc __builtin_vec_perm (vbc, vbc, vbc);
2941 VPERM_16QI VPERM_VBC_VBC_VBC
2943 [VEC_PERMX, vec_permx, __builtin_vec_xxpermx, _ARCH_PWR10]
2944 vsc __builtin_vec_xxpermx (vsc, vsc, vuc, const int);
2945 XXPERMX_UV2DI XXPERMX_VSC
2946 vuc __builtin_vec_xxpermx (vuc, vuc, vuc, const int);
2947 XXPERMX_UV2DI XXPERMX_VUC
2948 vss __builtin_vec_xxpermx (vss, vss, vuc, const int);
2949 XXPERMX_UV2DI XXPERMX_VSS
2950 vus __builtin_vec_xxpermx (vus, vus, vuc, const int);
2951 XXPERMX_UV2DI XXPERMX_VUS
2952 vsi __builtin_vec_xxpermx (vsi, vsi, vuc, const int);
2953 XXPERMX_UV2DI XXPERMX_VSI
2954 vui __builtin_vec_xxpermx (vui, vui, vuc, const int);
2955 XXPERMX_UV2DI XXPERMX_VUI
2956 vsll __builtin_vec_xxpermx (vsll, vsll, vuc, const int);
2957 XXPERMX_UV2DI XXPERMX_VSLL
2958 vull __builtin_vec_xxpermx (vull, vull, vuc, const int);
2959 XXPERMX_UV2DI XXPERMX_VULL
2960 vf __builtin_vec_xxpermx (vf, vf, vuc, const int);
2961 XXPERMX_UV2DI XXPERMX_VF
2962 vd __builtin_vec_xxpermx (vd, vd, vuc, const int);
2963 XXPERMX_UV2DI XXPERMX_VD
2965 [VEC_PERMXOR, vec_permxor, __builtin_vec_vpermxor]
2966 vsc __builtin_vec_vpermxor (vsc, vsc, vsc);
2967 VPERMXOR VPERMXOR_VSC
2968 vuc __builtin_vec_vpermxor (vuc, vuc, vuc);
2969 VPERMXOR VPERMXOR_VUC
2970 vbc __builtin_vec_vpermxor (vbc, vbc, vbc);
2971 VPERMXOR VPERMXOR_VBC
2973 [VEC_PEXT, vec_pext, __builtin_vec_vpextd, _ARCH_PWR10]
2974 vull __builtin_vec_vpextd (vull, vull);
2977 [VEC_PMSUM, vec_pmsum_be, __builtin_vec_vpmsum]
2978 vus __builtin_vec_vpmsum (vuc, vuc);
2980 vui __builtin_vec_vpmsum (vus, vus);
2982 vull __builtin_vec_vpmsum (vui, vui);
2984 vuq __builtin_vec_vpmsum (vull, vull);
2987 [VEC_POPCNT, vec_popcnt, __builtin_vec_vpopcntu, _ARCH_PWR8]
2988 vuc __builtin_vec_vpopcntu (vsc);
2990 vuc __builtin_vec_vpopcntu (vuc);
2992 vus __builtin_vec_vpopcntu (vss);
2994 vus __builtin_vec_vpopcntu (vus);
2996 vui __builtin_vec_vpopcntu (vsi);
2998 vui __builtin_vec_vpopcntu (vui);
3000 vull __builtin_vec_vpopcntu (vsll);
3002 vull __builtin_vec_vpopcntu (vull);
3005 [VEC_PARITY_LSBB, vec_parity_lsbb, __builtin_vec_vparity_lsbb, _ARCH_PWR9]
3006 vui __builtin_vec_vparity_lsbb (vsi);
3008 vui __builtin_vec_vparity_lsbb (vui);
3010 vull __builtin_vec_vparity_lsbb (vsll);
3012 vull __builtin_vec_vparity_lsbb (vull);
3014 vuq __builtin_vec_vparity_lsbb (vsq);
3016 vuq __builtin_vec_vparity_lsbb (vuq);
3019 ; There are no actual builtins for vec_promote. There is special handling for
3020 ; this in altivec_resolve_overloaded_builtin in rs6000-c.c, where the call
3021 ; is replaced by a constructor. The single overload here causes
3022 ; __builtin_vec_promote to be registered with the front end so that can happen.
3023 [VEC_PROMOTE, vec_promote, __builtin_vec_promote]
3024 vsi __builtin_vec_promote (vsi, const int);
3025 ABS_V4SI PROMOTE_FAKERY
3027 [VEC_RE, vec_re, __builtin_vec_re]
3028 vf __builtin_vec_re (vf);
3030 vd __builtin_vec_re (vd);
3033 [VEC_RECIP, vec_recipdiv, __builtin_vec_recipdiv]
3034 vf __builtin_vec_recipdiv (vf, vf);
3036 vd __builtin_vec_recipdiv (vd, vd);
3039 [VEC_REPLACE_ELT, vec_replace_elt, __builtin_vec_replace_elt, _ARCH_PWR10]
3040 vui __builtin_vec_replace_elt (vui, unsigned int, const int);
3042 vsi __builtin_vec_replace_elt (vsi, signed int, const int);
3044 vull __builtin_vec_replace_elt (vull, unsigned long long, const int);
3046 vsll __builtin_vec_replace_elt (vsll, signed long long, const int);
3048 vf __builtin_vec_replace_elt (vf, float, const int);
3050 vd __builtin_vec_replace_elt (vd, double, const int);
3053 [VEC_REPLACE_UN, vec_replace_unaligned, __builtin_vec_replace_un, _ARCH_PWR10]
3054 vui __builtin_vec_replace_un (vui, unsigned int, const int);
3056 vsi __builtin_vec_replace_un (vsi, signed int, const int);
3058 vull __builtin_vec_replace_un (vull, unsigned long long, const int);
3060 vsll __builtin_vec_replace_un (vsll, signed long long, const int);
3062 vf __builtin_vec_replace_un (vf, float, const int);
3064 vd __builtin_vec_replace_un (vd, double, const int);
3067 [VEC_REVB, vec_revb, __builtin_vec_revb, _ARCH_PWR8]
3068 vss __builtin_vec_revb (vss);
3070 vus __builtin_vec_revb (vus);
3072 vsi __builtin_vec_revb (vsi);
3074 vui __builtin_vec_revb (vui);
3076 vsll __builtin_vec_revb (vsll);
3078 vull __builtin_vec_revb (vull);
3080 vsq __builtin_vec_revb (vsq);
3082 vuq __builtin_vec_revb (vuq);
3084 vf __builtin_vec_revb (vf);
3086 vd __builtin_vec_revb (vd);
3088 ; The following variants are deprecated.
3089 vsc __builtin_vec_revb (vsc);
3091 vuc __builtin_vec_revb (vuc);
3093 vbc __builtin_vec_revb (vbc);
3095 vbs __builtin_vec_revb (vbs);
3097 vbi __builtin_vec_revb (vbi);
3099 vbll __builtin_vec_revb (vbll);
3102 [VEC_REVE, vec_reve, __builtin_vec_vreve]
3103 vsc __builtin_vec_vreve (vsc);
3104 VREVE_V16QI VREVE_VSC
3105 vuc __builtin_vec_vreve (vuc);
3106 VREVE_V16QI VREVE_VUC
3107 vbc __builtin_vec_vreve (vbc);
3108 VREVE_V16QI VREVE_VBC
3109 vss __builtin_vec_vreve (vss);
3110 VREVE_V8HI VREVE_VSS
3111 vus __builtin_vec_vreve (vus);
3112 VREVE_V8HI VREVE_VUS
3113 vbs __builtin_vec_vreve (vbs);
3114 VREVE_V8HI VREVE_VBS
3115 vsi __builtin_vec_vreve (vsi);
3116 VREVE_V4SI VREVE_VSI
3117 vui __builtin_vec_vreve (vui);
3118 VREVE_V4SI VREVE_VUI
3119 vbi __builtin_vec_vreve (vbi);
3120 VREVE_V4SI VREVE_VBI
3121 vsll __builtin_vec_vreve (vsll);
3122 VREVE_V2DI VREVE_VSLL
3123 vull __builtin_vec_vreve (vull);
3124 VREVE_V2DI VREVE_VULL
3125 vbll __builtin_vec_vreve (vbll);
3126 VREVE_V2DI VREVE_VBLL
3127 vf __builtin_vec_vreve (vf);
3129 vd __builtin_vec_vreve (vd);
3132 [VEC_RINT, vec_rint, __builtin_vec_rint, __VSX__]
3133 vf __builtin_vec_rint (vf);
3135 vd __builtin_vec_rint (vd);
3138 [VEC_RL, vec_rl, __builtin_vec_rl]
3139 vsc __builtin_vec_rl (vsc, vuc);
3141 vuc __builtin_vec_rl (vuc, vuc);
3143 vss __builtin_vec_rl (vss, vus);
3145 vus __builtin_vec_rl (vus, vus);
3147 vsi __builtin_vec_rl (vsi, vui);
3149 vui __builtin_vec_rl (vui, vui);
3151 vsll __builtin_vec_rl (vsll, vull);
3153 vull __builtin_vec_rl (vull, vull);
3155 vsq __builtin_vec_rl (vsq, vuq);
3157 vuq __builtin_vec_rl (vuq, vuq);
3160 [VEC_RLMI, vec_rlmi, __builtin_vec_rlmi, _ARCH_PWR9]
3161 vui __builtin_vec_rlmi (vui, vui, vui);
3163 vull __builtin_vec_rlmi (vull, vull, vull);
3165 vsq __builtin_vec_rlmi (vsq, vsq, vuq);
3167 vuq __builtin_vec_rlmi (vuq, vuq, vuq);
3170 [VEC_RLNM, vec_vrlnm, __builtin_vec_rlnm, _ARCH_PWR9]
3171 vui __builtin_vec_rlnm (vui, vui);
3173 vull __builtin_vec_rlnm (vull, vull);
3175 vsq __builtin_vec_rlnm (vsq, vuq);
3177 vuq __builtin_vec_rlnm (vuq, vuq);
3180 [VEC_ROUND, vec_round, __builtin_vec_round]
3181 vf __builtin_vec_round (vf);
3183 vd __builtin_vec_round (vd);
3186 [VEC_RSQRT, vec_rsqrt, __builtin_vec_rsqrt]
3187 vf __builtin_vec_rsqrt (vf);
3189 vd __builtin_vec_rsqrt (vd);
3192 [VEC_RSQRTE, vec_rsqrte, __builtin_vec_rsqrte]
3193 vf __builtin_vec_rsqrte (vf);
3195 vd __builtin_vec_rsqrte (vd);
3198 [VEC_SBOX_BE, vec_sbox_be, __builtin_vec_sbox_be, _ARCH_PWR8]
3199 vuc __builtin_vec_sbox_be (vuc);
3202 [VEC_SEL, vec_sel, __builtin_vec_sel]
3203 vsc __builtin_vec_sel (vsc, vsc, vbc);
3204 VSEL_16QI VSEL_16QI_B
3205 vsc __builtin_vec_sel (vsc, vsc, vuc);
3206 VSEL_16QI VSEL_16QI_U
3207 vuc __builtin_vec_sel (vuc, vuc, vbc);
3208 VSEL_16QI_UNS VSEL_16QI_UB
3209 vuc __builtin_vec_sel (vuc, vuc, vuc);
3210 VSEL_16QI_UNS VSEL_16QI_UU
3211 vbc __builtin_vec_sel (vbc, vbc, vbc);
3212 VSEL_16QI_UNS VSEL_16QI_BB
3213 vbc __builtin_vec_sel (vbc, vbc, vuc);
3214 VSEL_16QI_UNS VSEL_16QI_BU
3215 vss __builtin_vec_sel (vss, vss, vbs);
3217 vss __builtin_vec_sel (vss, vss, vus);
3219 vus __builtin_vec_sel (vus, vus, vbs);
3220 VSEL_8HI_UNS VSEL_8HI_UB
3221 vus __builtin_vec_sel (vus, vus, vus);
3222 VSEL_8HI_UNS VSEL_8HI_UU
3223 vbs __builtin_vec_sel (vbs, vbs, vbs);
3224 VSEL_8HI_UNS VSEL_8HI_BB
3225 vbs __builtin_vec_sel (vbs, vbs, vus);
3226 VSEL_8HI_UNS VSEL_8HI_BU
3227 vsi __builtin_vec_sel (vsi, vsi, vbi);
3229 vsi __builtin_vec_sel (vsi, vsi, vui);
3231 vui __builtin_vec_sel (vui, vui, vbi);
3232 VSEL_4SI_UNS VSEL_4SI_UB
3233 vui __builtin_vec_sel (vui, vui, vui);
3234 VSEL_4SI_UNS VSEL_4SI_UU
3235 vbi __builtin_vec_sel (vbi, vbi, vbi);
3236 VSEL_4SI_UNS VSEL_4SI_BB
3237 vbi __builtin_vec_sel (vbi, vbi, vui);
3238 VSEL_4SI_UNS VSEL_4SI_BU
3239 vsll __builtin_vec_sel (vsll, vsll, vbll);
3240 VSEL_2DI_B VSEL_2DI_B
3241 vsll __builtin_vec_sel (vsll, vsll, vull);
3242 VSEL_2DI_B VSEL_2DI_U
3243 vull __builtin_vec_sel (vull, vull, vbll);
3244 VSEL_2DI_UNS VSEL_2DI_UB
3245 vull __builtin_vec_sel (vull, vull, vull);
3246 VSEL_2DI_UNS VSEL_2DI_UU
3247 vbll __builtin_vec_sel (vbll, vbll, vbll);
3248 VSEL_2DI_UNS VSEL_2DI_BB
3249 vbll __builtin_vec_sel (vbll, vbll, vull);
3250 VSEL_2DI_UNS VSEL_2DI_BU
3251 vf __builtin_vec_sel (vf, vf, vbi);
3253 vf __builtin_vec_sel (vf, vf, vui);
3255 vd __builtin_vec_sel (vd, vd, vbll);
3257 vd __builtin_vec_sel (vd, vd, vull);
3259 ; The following variants are deprecated.
3260 vsll __builtin_vec_sel (vsll, vsll, vsll);
3261 VSEL_2DI_B VSEL_2DI_S
3262 vull __builtin_vec_sel (vull, vull, vsll);
3263 VSEL_2DI_UNS VSEL_2DI_US
3264 vf __builtin_vec_sel (vf, vf, vf);
3266 vf __builtin_vec_sel (vf, vf, vsi);
3268 vd __builtin_vec_sel (vd, vd, vsll);
3270 vd __builtin_vec_sel (vd, vd, vd);
3273 [VEC_SHASIGMA_BE, vec_shasigma_be, __builtin_crypto_vshasigma]
3274 vui __builtin_crypto_vshasigma (vui, const int, const int);
3276 vull __builtin_crypto_vshasigma (vull, const int, const int);
3279 [VEC_SIGNED, vec_signed, __builtin_vec_vsigned]
3280 vsi __builtin_vec_vsigned (vf);
3282 vsll __builtin_vec_vsigned (vd);
3285 [VEC_SIGNED2, vec_signed2, __builtin_vec_vsigned2]
3286 vsi __builtin_vec_vsigned2 (vd, vd);
3289 [VEC_SIGNEDE, vec_signede, __builtin_vec_vsignede]
3290 vsi __builtin_vec_vsignede (vd);
3293 [VEC_SIGNEDO, vec_signedo, __builtin_vec_vsignedo]
3294 vsi __builtin_vec_vsignedo (vd);
3297 [VEC_SIGNEXTI, vec_signexti, __builtin_vec_signexti, _ARCH_PWR9]
3298 vsi __builtin_vec_signexti (vsc);
3300 vsi __builtin_vec_signexti (vss);
3303 [VEC_SIGNEXTLL, vec_signextll, __builtin_vec_signextll, _ARCH_PWR9]
3304 vsll __builtin_vec_signextll (vsc);
3306 vsll __builtin_vec_signextll (vss);
3308 vsll __builtin_vec_signextll (vsi);
3311 [VEC_SIGNEXTQ, vec_signextq, __builtin_vec_signextq, _ARCH_PWR10]
3312 vsq __builtin_vec_signextq (vsll);
3315 [VEC_SL, vec_sl, __builtin_vec_sl]
3316 vsc __builtin_vec_sl (vsc, vuc);
3318 vuc __builtin_vec_sl (vuc, vuc);
3320 vss __builtin_vec_sl (vss, vus);
3322 vus __builtin_vec_sl (vus, vus);
3324 vsi __builtin_vec_sl (vsi, vui);
3326 vui __builtin_vec_sl (vui, vui);
3328 vsll __builtin_vec_sl (vsll, vull);
3330 vull __builtin_vec_sl (vull, vull);
3332 vsq __builtin_vec_sl (vsq, vuq);
3334 vuq __builtin_vec_sl (vuq, vuq);
3337 [VEC_SLD, vec_sld, __builtin_vec_sld]
3338 vsc __builtin_vec_sld (vsc, vsc, const int);
3339 VSLDOI_16QI VSLDOI_VSC
3340 vbc __builtin_vec_sld (vbc, vbc, const int);
3341 VSLDOI_16QI VSLDOI_VBC
3342 vuc __builtin_vec_sld (vuc, vuc, const int);
3343 VSLDOI_16QI VSLDOI_VUC
3344 vss __builtin_vec_sld (vss, vss, const int);
3345 VSLDOI_8HI VSLDOI_VSS
3346 vbs __builtin_vec_sld (vbs, vbs, const int);
3347 VSLDOI_8HI VSLDOI_VBS
3348 vus __builtin_vec_sld (vus, vus, const int);
3349 VSLDOI_8HI VSLDOI_VUS
3350 vp __builtin_vec_sld (vp, vp, const int);
3351 VSLDOI_8HI VSLDOI_VP
3352 vsi __builtin_vec_sld (vsi, vsi, const int);
3353 VSLDOI_4SI VSLDOI_VSI
3354 vbi __builtin_vec_sld (vbi, vbi, const int);
3355 VSLDOI_4SI VSLDOI_VBI
3356 vui __builtin_vec_sld (vui, vui, const int);
3357 VSLDOI_4SI VSLDOI_VUI
3358 vsll __builtin_vec_sld (vsll, vsll, const int);
3359 VSLDOI_2DI VSLDOI_VSLL
3360 vbll __builtin_vec_sld (vbll, vbll, const int);
3361 VSLDOI_2DI VSLDOI_VBLL
3362 vull __builtin_vec_sld (vull, vull, const int);
3363 VSLDOI_2DI VSLDOI_VULL
3364 vf __builtin_vec_sld (vf, vf, const int);
3366 vd __builtin_vec_sld (vd, vd, const int);
3369 [VEC_SLDB, vec_sldb, __builtin_vec_sldb, _ARCH_PWR10]
3370 vsc __builtin_vec_sldb (vsc, vsc, const int);
3371 VSLDB_V16QI VSLDB_VSC
3372 vuc __builtin_vec_sldb (vuc, vuc, const int);
3373 VSLDB_V16QI VSLDB_VUC
3374 vss __builtin_vec_sldb (vss, vss, const int);
3375 VSLDB_V8HI VSLDB_VSS
3376 vus __builtin_vec_sldb (vus, vus, const int);
3377 VSLDB_V8HI VSLDB_VUS
3378 vsi __builtin_vec_sldb (vsi, vsi, const int);
3379 VSLDB_V4SI VSLDB_VSI
3380 vui __builtin_vec_sldb (vui, vui, const int);
3381 VSLDB_V4SI VSLDB_VUI
3382 vsll __builtin_vec_sldb (vsll, vsll, const int);
3383 VSLDB_V2DI VSLDB_VSLL
3384 vull __builtin_vec_sldb (vull, vull, const int);
3385 VSLDB_V2DI VSLDB_VULL
3387 [VEC_SLDW, vec_sldw, __builtin_vec_sldw]
3388 vsc __builtin_vec_sldw (vsc, vsc, const int);
3389 XXSLDWI_16QI XXSLDWI_VSC
3390 vuc __builtin_vec_sldw (vuc, vuc, const int);
3391 XXSLDWI_16QI XXSLDWI_VUC
3392 vss __builtin_vec_sldw (vss, vss, const int);
3393 XXSLDWI_8HI XXSLDWI_VSS
3394 vus __builtin_vec_sldw (vus, vus, const int);
3395 XXSLDWI_8HI XXSLDWI_VUS
3396 vsi __builtin_vec_sldw (vsi, vsi, const int);
3397 XXSLDWI_4SI XXSLDWI_VSI
3398 vui __builtin_vec_sldw (vui, vui, const int);
3399 XXSLDWI_4SI XXSLDWI_VUI
3400 vsll __builtin_vec_sldw (vsll, vsll, const int);
3401 XXSLDWI_2DI XXSLDWI_VSLL
3402 vull __builtin_vec_sldw (vull, vull, const int);
3403 XXSLDWI_2DI XXSLDWI_VULL
3405 [VEC_SLL, vec_sll, __builtin_vec_sll]
3406 vsc __builtin_vec_sll (vsc, vuc);
3408 vuc __builtin_vec_sll (vuc, vuc);
3410 vss __builtin_vec_sll (vss, vuc);
3412 vus __builtin_vec_sll (vus, vuc);
3414 vp __builtin_vec_sll (vp, vuc);
3416 vsi __builtin_vec_sll (vsi, vuc);
3418 vui __builtin_vec_sll (vui, vuc);
3420 vsll __builtin_vec_sll (vsll, vuc);
3422 vull __builtin_vec_sll (vull, vuc);
3424 ; The following variants are deprecated.
3425 vsc __builtin_vec_sll (vsc, vus);
3427 vsc __builtin_vec_sll (vsc, vui);
3429 vuc __builtin_vec_sll (vuc, vus);
3431 vuc __builtin_vec_sll (vuc, vui);
3433 vbc __builtin_vec_sll (vbc, vuc);
3435 vbc __builtin_vec_sll (vbc, vus);
3437 vbc __builtin_vec_sll (vbc, vui);
3439 vss __builtin_vec_sll (vss, vus);
3441 vss __builtin_vec_sll (vss, vui);
3443 vus __builtin_vec_sll (vus, vus);
3445 vus __builtin_vec_sll (vus, vui);
3447 vbs __builtin_vec_sll (vbs, vuc);
3449 vbs __builtin_vec_sll (vbs, vus);
3451 vbs __builtin_vec_sll (vbs, vui);
3453 vp __builtin_vec_sll (vp, vus);
3455 vp __builtin_vec_sll (vp, vui);
3457 vsi __builtin_vec_sll (vsi, vus);
3459 vsi __builtin_vec_sll (vsi, vui);
3461 vui __builtin_vec_sll (vui, vus);
3463 vui __builtin_vec_sll (vui, vui);
3465 vbi __builtin_vec_sll (vbi, vuc);
3467 vbi __builtin_vec_sll (vbi, vus);
3469 vbi __builtin_vec_sll (vbi, vui);
3471 vbll __builtin_vec_sll (vbll, vuc);
3473 vbll __builtin_vec_sll (vbll, vus);
3475 vbll __builtin_vec_sll (vbll, vull);
3478 [VEC_SLO, vec_slo, __builtin_vec_slo]
3479 vsc __builtin_vec_slo (vsc, vsc);
3481 vsc __builtin_vec_slo (vsc, vuc);
3483 vuc __builtin_vec_slo (vuc, vsc);
3485 vuc __builtin_vec_slo (vuc, vuc);
3487 vss __builtin_vec_slo (vss, vsc);
3489 vss __builtin_vec_slo (vss, vuc);
3491 vus __builtin_vec_slo (vus, vsc);
3493 vus __builtin_vec_slo (vus, vuc);
3495 vp __builtin_vec_slo (vp, vsc);
3497 vp __builtin_vec_slo (vp, vuc);
3499 vsi __builtin_vec_slo (vsi, vsc);
3501 vsi __builtin_vec_slo (vsi, vuc);
3503 vui __builtin_vec_slo (vui, vsc);
3505 vui __builtin_vec_slo (vui, vuc);
3507 vsll __builtin_vec_slo (vsll, vsc);
3509 vsll __builtin_vec_slo (vsll, vuc);
3511 vull __builtin_vec_slo (vull, vsc);
3513 vull __builtin_vec_slo (vull, vuc);
3515 vf __builtin_vec_slo (vf, vsc);
3517 vf __builtin_vec_slo (vf, vuc);
3520 [VEC_SLV, vec_slv, __builtin_vec_vslv, _ARCH_PWR9]
3521 vuc __builtin_vec_vslv (vuc, vuc);
3524 [VEC_SPLAT, vec_splat, __builtin_vec_splat]
3525 vsc __builtin_vec_splat (vsc, signed int);
3527 vuc __builtin_vec_splat (vuc, signed int);
3529 vbc __builtin_vec_splat (vbc, signed int);
3531 vss __builtin_vec_splat (vss, signed int);
3533 vus __builtin_vec_splat (vus, signed int);
3535 vbs __builtin_vec_splat (vbs, signed int);
3537 vp __builtin_vec_splat (vp, signed int);
3539 vf __builtin_vec_splat (vf, signed int);
3541 vsi __builtin_vec_splat (vsi, signed int);
3543 vui __builtin_vec_splat (vui, signed int);
3545 vbi __builtin_vec_splat (vbi, signed int);
3547 vd __builtin_vec_splat (vd, signed int);
3549 vsll __builtin_vec_splat (vsll, signed int);
3550 XXSPLTD_V2DI XXSPLTD_VSLL
3551 vull __builtin_vec_splat (vull, signed int);
3552 XXSPLTD_V2DI XXSPLTD_VULL
3553 vbll __builtin_vec_splat (vbll, signed int);
3554 XXSPLTD_V2DI XXSPLTD_VBLL
3556 [VEC_SPLAT_S8, vec_splat_s8, __builtin_vec_splat_s8]
3557 vsc __builtin_vec_splat_s8 (signed int);
3560 [VEC_SPLAT_S16, vec_splat_s16, __builtin_vec_splat_s16]
3561 vss __builtin_vec_splat_s16 (signed int);
3564 [VEC_SPLAT_S32, vec_splat_s32, __builtin_vec_splat_s32]
3565 vsi __builtin_vec_splat_s32 (signed int);
3568 ; There are no entries for vec_splat_u{8,16,32}. These are handled
3569 ; in altivec.h with a #define and a cast.
3571 [VEC_SPLATI, vec_splati, __builtin_vec_xxspltiw, _ARCH_PWR10]
3572 vsi __builtin_vec_xxspltiw (signed int);
3574 vf __builtin_vec_xxspltiw (float);
3577 [VEC_SPLATID, vec_splatid, __builtin_vec_xxspltid, _ARCH_PWR10]
3578 vd __builtin_vec_xxspltid (float);
3581 [VEC_SPLATI_INS, vec_splati_ins, __builtin_vec_xxsplti32dx, _ARCH_PWR10]
3582 vsi __builtin_vec_xxsplti32dx (vsi, const int, signed int);
3583 VXXSPLTI32DX_V4SI VXXSPLTI32DX_VSI
3584 vui __builtin_vec_xxsplti32dx (vui, const int, unsigned int);
3585 VXXSPLTI32DX_V4SI VXXSPLTI32DX_VUI
3586 vf __builtin_vec_xxsplti32dx (vf, const int, float);
3589 ; There are no actual builtins for vec_splats. There is special handling for
3590 ; this in altivec_resolve_overloaded_builtin in rs6000-c.c, where the call
3591 ; is replaced by a constructor. The single overload here causes
3592 ; __builtin_vec_splats to be registered with the front end so that can happen.
3593 [VEC_SPLATS, vec_splats, __builtin_vec_splats]
3594 vsi __builtin_vec_splats (vsi);
3595 ABS_V4SI SPLATS_FAKERY
3597 [VEC_SQRT, vec_sqrt, __builtin_vec_sqrt, __VSX__]
3598 vf __builtin_vec_sqrt (vf);
3600 vd __builtin_vec_sqrt (vd);
3603 [VEC_SR, vec_sr, __builtin_vec_sr]
3604 vsc __builtin_vec_sr (vsc, vuc);
3606 vuc __builtin_vec_sr (vuc, vuc);
3608 vss __builtin_vec_sr (vss, vus);
3610 vus __builtin_vec_sr (vus, vus);
3612 vsi __builtin_vec_sr (vsi, vui);
3614 vui __builtin_vec_sr (vui, vui);
3616 vsll __builtin_vec_sr (vsll, vull);
3618 vull __builtin_vec_sr (vull, vull);
3620 vsq __builtin_vec_sr (vsq, vuq);
3622 vuq __builtin_vec_sr (vuq, vuq);
3625 [VEC_SRA, vec_sra, __builtin_vec_sra]
3626 vsc __builtin_vec_sra (vsc, vuc);
3628 vuc __builtin_vec_sra (vuc, vuc);
3630 vss __builtin_vec_sra (vss, vus);
3632 vus __builtin_vec_sra (vus, vus);
3634 vsi __builtin_vec_sra (vsi, vui);
3636 vui __builtin_vec_sra (vui, vui);
3638 vsll __builtin_vec_sra (vsll, vull);
3640 vull __builtin_vec_sra (vull, vull);
3642 vsq __builtin_vec_sra (vsq, vuq);
3644 vuq __builtin_vec_sra (vuq, vuq);
3647 [VEC_SRDB, vec_srdb, __builtin_vec_srdb, _ARCH_PWR10]
3648 vsc __builtin_vec_srdb (vsc, vsc, const int);
3649 VSRDB_V16QI VSRDB_VSC
3650 vuc __builtin_vec_srdb (vuc, vuc, const int);
3651 VSRDB_V16QI VSRDB_VUC
3652 vss __builtin_vec_srdb (vss, vss, const int);
3653 VSRDB_V8HI VSRDB_VSS
3654 vus __builtin_vec_srdb (vus, vus, const int);
3655 VSRDB_V8HI VSRDB_VUS
3656 vsi __builtin_vec_srdb (vsi, vsi, const int);
3657 VSRDB_V4SI VSRDB_VSI
3658 vui __builtin_vec_srdb (vui, vui, const int);
3659 VSRDB_V4SI VSRDB_VUI
3660 vsll __builtin_vec_srdb (vsll, vsll, const int);
3661 VSRDB_V2DI VSRDB_VSLL
3662 vull __builtin_vec_srdb (vull, vull, const int);
3663 VSRDB_V2DI VSRDB_VULL
3665 [VEC_SRL, vec_srl, __builtin_vec_srl]
3666 vsc __builtin_vec_srl (vsc, vuc);
3668 vuc __builtin_vec_srl (vuc, vuc);
3670 vss __builtin_vec_srl (vss, vuc);
3672 vus __builtin_vec_srl (vus, vuc);
3674 vp __builtin_vec_srl (vp, vuc);
3676 vsi __builtin_vec_srl (vsi, vuc);
3678 vui __builtin_vec_srl (vui, vuc);
3680 vsll __builtin_vec_srl (vsll, vuc);
3682 vull __builtin_vec_srl (vull, vuc);
3684 ; The following variants are deprecated.
3685 vsc __builtin_vec_srl (vsc, vus);
3687 vsc __builtin_vec_srl (vsc, vui);
3689 vuc __builtin_vec_srl (vuc, vus);
3691 vuc __builtin_vec_srl (vuc, vui);
3693 vbc __builtin_vec_srl (vbc, vuc);
3695 vbc __builtin_vec_srl (vbc, vus);
3697 vbc __builtin_vec_srl (vbc, vui);
3699 vss __builtin_vec_srl (vss, vus);
3701 vss __builtin_vec_srl (vss, vui);
3703 vus __builtin_vec_srl (vus, vus);
3705 vus __builtin_vec_srl (vus, vui);
3707 vbs __builtin_vec_srl (vbs, vuc);
3709 vbs __builtin_vec_srl (vbs, vus);
3711 vbs __builtin_vec_srl (vbs, vui);
3713 vp __builtin_vec_srl (vp, vus);
3715 vp __builtin_vec_srl (vp, vui);
3717 vsi __builtin_vec_srl (vsi, vus);
3719 vsi __builtin_vec_srl (vsi, vui);
3721 vui __builtin_vec_srl (vui, vus);
3723 vui __builtin_vec_srl (vui, vui);
3725 vbi __builtin_vec_srl (vbi, vuc);
3727 vbi __builtin_vec_srl (vbi, vus);
3729 vbi __builtin_vec_srl (vbi, vui);
3732 [VEC_SRO, vec_sro, __builtin_vec_sro]
3733 vsc __builtin_vec_sro (vsc, vsc);
3735 vsc __builtin_vec_sro (vsc, vuc);
3737 vuc __builtin_vec_sro (vuc, vsc);
3739 vuc __builtin_vec_sro (vuc, vuc);
3741 vss __builtin_vec_sro (vss, vsc);
3743 vss __builtin_vec_sro (vss, vuc);
3745 vus __builtin_vec_sro (vus, vsc);
3747 vus __builtin_vec_sro (vus, vuc);
3749 vp __builtin_vec_sro (vp, vsc);
3751 vp __builtin_vec_sro (vp, vuc);
3753 vsi __builtin_vec_sro (vsi, vsc);
3755 vsi __builtin_vec_sro (vsi, vuc);
3757 vui __builtin_vec_sro (vui, vsc);
3759 vui __builtin_vec_sro (vui, vuc);
3761 vsll __builtin_vec_sro (vsll, vsc);
3763 vsll __builtin_vec_sro (vsll, vuc);
3765 vull __builtin_vec_sro (vull, vsc);
3767 vull __builtin_vec_sro (vull, vuc);
3769 vf __builtin_vec_sro (vf, vsc);
3771 vf __builtin_vec_sro (vf, vuc);
3774 [VEC_SRV, vec_srv, __builtin_vec_vsrv, _ARCH_PWR9]
3775 vuc __builtin_vec_vsrv (vuc, vuc);
3778 [VEC_ST, vec_st, __builtin_vec_st]
3779 void __builtin_vec_st (vsc, signed long long, vsc *);
3781 void __builtin_vec_st (vsc, signed long long, signed char *);
3783 void __builtin_vec_st (vuc, signed long long, vuc *);
3785 void __builtin_vec_st (vuc, signed long long, unsigned char *);
3787 void __builtin_vec_st (vbc, signed long long, vbc *);
3789 void __builtin_vec_st (vbc, signed long long, signed char *);
3790 STVX_V16QI STVX_SC_B
3791 void __builtin_vec_st (vbc, signed long long, unsigned char *);
3792 STVX_V16QI STVX_UC_B
3793 void __builtin_vec_st (vss, signed long long, vss *);
3795 void __builtin_vec_st (vss, signed long long, signed short *);
3797 void __builtin_vec_st (vus, signed long long, vus *);
3799 void __builtin_vec_st (vus, signed long long, unsigned short *);
3801 void __builtin_vec_st (vbs, signed long long, vbs *);
3803 void __builtin_vec_st (vbs, signed long long, signed short *);
3805 void __builtin_vec_st (vbs, signed long long, unsigned short *);
3807 void __builtin_vec_st (vp, signed long long, vp *);
3809 void __builtin_vec_st (vsi, signed long long, vsi *);
3811 void __builtin_vec_st (vsi, signed long long, signed int *);
3813 void __builtin_vec_st (vui, signed long long, vui *);
3815 void __builtin_vec_st (vui, signed long long, unsigned int *);
3817 void __builtin_vec_st (vbi, signed long long, vbi *);
3819 void __builtin_vec_st (vbi, signed long long, signed int *);
3821 void __builtin_vec_st (vbi, signed long long, unsigned int *);
3823 void __builtin_vec_st (vsll, signed long long, vsll *);
3825 void __builtin_vec_st (vsll, signed long long, signed long long *);
3827 void __builtin_vec_st (vull, signed long long, vull *);
3829 void __builtin_vec_st (vull, signed long long, unsigned long long *);
3831 void __builtin_vec_st (vbll, signed long long, vbll *);
3833 void __builtin_vec_st (vf, signed long long, vf *);
3835 void __builtin_vec_st (vf, signed long long, float *);
3837 void __builtin_vec_st (vd, signed long long, vd *);
3839 void __builtin_vec_st (vd, signed long long, double *);
3841 ; The following variants are deprecated.
3842 void __builtin_vec_st (vbll, signed long long, signed long long *);
3843 STVX_V2DI STVX_SLL_B
3844 void __builtin_vec_st (vbll, signed long long, unsigned long long *);
3845 STVX_V2DI STVX_ULL_B
3847 [VEC_STE, vec_ste, __builtin_vec_ste]
3848 void __builtin_vec_ste (vsc, signed long long, signed char *);
3850 void __builtin_vec_ste (vuc, signed long long, unsigned char *);
3852 void __builtin_vec_ste (vbc, signed long long, signed char *);
3854 void __builtin_vec_ste (vbc, signed long long, unsigned char *);
3856 void __builtin_vec_ste (vss, signed long long, signed short *);
3858 void __builtin_vec_ste (vus, signed long long, unsigned short *);
3860 void __builtin_vec_ste (vbs, signed long long, signed short *);
3862 void __builtin_vec_ste (vbs, signed long long, unsigned short *);
3864 void __builtin_vec_ste (vp, signed long long, signed short *);
3866 void __builtin_vec_ste (vp, signed long long, unsigned short *);
3868 void __builtin_vec_ste (vsi, signed long long, signed int *);
3870 void __builtin_vec_ste (vui, signed long long, unsigned int *);
3872 void __builtin_vec_ste (vbi, signed long long, signed int *);
3874 void __builtin_vec_ste (vbi, signed long long, unsigned int *);
3876 void __builtin_vec_ste (vf, signed long long, float *);
3879 ; There are no builtins for VEC_STEP; this is handled directly
3880 ; with a constant replacement in rs6000_resolve_overloaded_builtin.
3881 ; The single overload registers __builtin_vec_step with the front end
3882 ; so this can happen.
3883 [VEC_STEP, vec_step, __builtin_vec_step]
3884 signed int __builtin_vec_step (vsi);
3885 VCLZLSBB_V4SI STEP_FAKERY
3887 [VEC_STL, vec_stl, __builtin_vec_stl]
3888 void __builtin_vec_stl (vsc, signed long long, vsc *);
3889 STVXL_V16QI STVXL_VSC
3890 void __builtin_vec_stl (vsc, signed long long, signed char *);
3891 STVXL_V16QI STVXL_SC
3892 void __builtin_vec_stl (vuc, signed long long, vuc *);
3893 STVXL_V16QI STVXL_VUC
3894 void __builtin_vec_stl (vuc, signed long long, unsigned char *);
3895 STVXL_V16QI STVXL_UC
3896 void __builtin_vec_stl (vbc, signed long long, vbc *);
3897 STVXL_V16QI STVXL_VBC
3898 void __builtin_vec_stl (vbc, signed long long, signed char *);
3899 STVXL_V16QI STVXL_SC_B
3900 void __builtin_vec_stl (vbc, signed long long, unsigned char *);
3901 STVXL_V16QI STVXL_UC_B
3902 void __builtin_vec_stl (vss, signed long long, vss *);
3903 STVXL_V8HI STVXL_VSS
3904 void __builtin_vec_stl (vss, signed long long, signed short *);
3906 void __builtin_vec_stl (vus, signed long long, vus *);
3907 STVXL_V8HI STVXL_VUS
3908 void __builtin_vec_stl (vus, signed long long, unsigned short *);
3910 void __builtin_vec_stl (vbs, signed long long, vbs *);
3911 STVXL_V8HI STVXL_VBS
3912 void __builtin_vec_stl (vbs, signed long long, signed short *);
3913 STVXL_V8HI STVXL_SS_B
3914 void __builtin_vec_stl (vbs, signed long long, unsigned short *);
3915 STVXL_V8HI STVXL_US_B
3916 void __builtin_vec_stl (vp, signed long long, vp *);
3918 void __builtin_vec_stl (vsi, signed long long, vsi *);
3919 STVXL_V4SI STVXL_VSI
3920 void __builtin_vec_stl (vsi, signed long long, signed int *);
3922 void __builtin_vec_stl (vui, signed long long, vui *);
3923 STVXL_V4SI STVXL_VUI
3924 void __builtin_vec_stl (vui, signed long long, unsigned int *);
3926 void __builtin_vec_stl (vbi, signed long long, vbi *);
3927 STVXL_V4SI STVXL_VBI
3928 void __builtin_vec_stl (vbi, signed long long, signed int *);
3929 STVXL_V4SI STVXL_SI_B
3930 void __builtin_vec_stl (vbi, signed long long, unsigned int *);
3931 STVXL_V4SI STVXL_UI_B
3932 void __builtin_vec_stl (vsll, signed long long, vsll *);
3933 STVXL_V2DI STVXL_VSLL
3934 void __builtin_vec_stl (vsll, signed long long, signed long long *);
3935 STVXL_V2DI STVXL_SLL
3936 void __builtin_vec_stl (vull, signed long long, vull *);
3937 STVXL_V2DI STVXL_VULL
3938 void __builtin_vec_stl (vull, signed long long, unsigned long long *);
3939 STVXL_V2DI STVXL_ULL
3940 void __builtin_vec_stl (vbll, signed long long, vbll *);
3941 STVXL_V2DI STVXL_VBLL
3942 void __builtin_vec_stl (vbll, signed long long, signed long long *);
3943 STVXL_V2DI STVXL_SLL_B
3944 void __builtin_vec_stl (vbll, signed long long, unsigned long long *);
3945 STVXL_V2DI STVXL_ULL_B
3946 void __builtin_vec_stl (vf, signed long long, vf *);
3948 void __builtin_vec_stl (vf, signed long long, float *);
3950 void __builtin_vec_stl (vd, signed long long, vd *);
3952 void __builtin_vec_stl (vd, signed long long, double *);
3955 [VEC_STRIL, vec_stril, __builtin_vec_stril, _ARCH_PWR10]
3956 vuc __builtin_vec_stril (vuc);
3958 vsc __builtin_vec_stril (vsc);
3960 vus __builtin_vec_stril (vus);
3962 vss __builtin_vec_stril (vss);
3965 [VEC_STRIL_P, vec_stril_p, __builtin_vec_stril_p, _ARCH_PWR10]
3966 signed int __builtin_vec_stril_p (vuc);
3967 VSTRIBL_P VSTRIBL_PU
3968 signed int __builtin_vec_stril_p (vsc);
3969 VSTRIBL_P VSTRIBL_PS
3970 signed int __builtin_vec_stril_p (vus);
3971 VSTRIHL_P VSTRIHL_PU
3972 signed int __builtin_vec_stril_p (vss);
3973 VSTRIHL_P VSTRIHL_PS
3975 [VEC_STRIR, vec_strir, __builtin_vec_strir, _ARCH_PWR10]
3976 vuc __builtin_vec_strir (vuc);
3978 vsc __builtin_vec_strir (vsc);
3980 vus __builtin_vec_strir (vus);
3982 vss __builtin_vec_strir (vss);
3985 [VEC_STRIR_P, vec_strir_p, __builtin_vec_strir_p, _ARCH_PWR10]
3986 signed int __builtin_vec_strir_p (vuc);
3987 VSTRIBR_P VSTRIBR_PU
3988 signed int __builtin_vec_strir_p (vsc);
3989 VSTRIBR_P VSTRIBR_PS
3990 signed int __builtin_vec_strir_p (vus);
3991 VSTRIHR_P VSTRIHR_PU
3992 signed int __builtin_vec_strir_p (vss);
3993 VSTRIHR_P VSTRIHR_PS
3995 [VEC_STVLX, vec_stvlx, __builtin_vec_stvlx, __PPU__]
3996 void __builtin_vec_stvlx (vbc, signed long long, vbc *);
3998 void __builtin_vec_stvlx (vsc, signed long long, vsc *);
4000 void __builtin_vec_stvlx (vsc, signed long long, signed char *);
4002 void __builtin_vec_stvlx (vuc, signed long long, vuc *);
4004 void __builtin_vec_stvlx (vuc, signed long long, unsigned char *);
4006 void __builtin_vec_stvlx (vbs, signed long long, vbs *);
4008 void __builtin_vec_stvlx (vss, signed long long, vss *);
4010 void __builtin_vec_stvlx (vss, signed long long, signed short *);
4012 void __builtin_vec_stvlx (vus, signed long long, vus *);
4014 void __builtin_vec_stvlx (vus, signed long long, unsigned short *);
4016 void __builtin_vec_stvlx (vp, signed long long, vp *);
4018 void __builtin_vec_stvlx (vbi, signed long long, vbi *);
4020 void __builtin_vec_stvlx (vsi, signed long long, vsi *);
4022 void __builtin_vec_stvlx (vsi, signed long long, signed int *);
4024 void __builtin_vec_stvlx (vui, signed long long, vui *);
4026 void __builtin_vec_stvlx (vui, signed long long, unsigned int *);
4028 void __builtin_vec_stvlx (vf, signed long long, vf *);
4030 void __builtin_vec_stvlx (vf, signed long long, float *);
4033 [VEC_STVLXL, vec_stvlxl, __builtin_vec_stvlxl, __PPU__]
4034 void __builtin_vec_stvlxl (vbc, signed long long, vbc *);
4036 void __builtin_vec_stvlxl (vsc, signed long long, vsc *);
4038 void __builtin_vec_stvlxl (vsc, signed long long, signed char *);
4040 void __builtin_vec_stvlxl (vuc, signed long long, vuc *);
4042 void __builtin_vec_stvlxl (vuc, signed long long, unsigned char *);
4044 void __builtin_vec_stvlxl (vbs, signed long long, vbs *);
4046 void __builtin_vec_stvlxl (vss, signed long long, vss *);
4048 void __builtin_vec_stvlxl (vss, signed long long, signed short *);
4050 void __builtin_vec_stvlxl (vus, signed long long, vus *);
4052 void __builtin_vec_stvlxl (vus, signed long long, unsigned short *);
4054 void __builtin_vec_stvlxl (vp, signed long long, vp *);
4056 void __builtin_vec_stvlxl (vbi, signed long long, vbi *);
4058 void __builtin_vec_stvlxl (vsi, signed long long, vsi *);
4060 void __builtin_vec_stvlxl (vsi, signed long long, signed int *);
4062 void __builtin_vec_stvlxl (vui, signed long long, vui *);
4064 void __builtin_vec_stvlxl (vui, signed long long, unsigned int *);
4066 void __builtin_vec_stvlxl (vf, signed long long, vf *);
4068 void __builtin_vec_stvlxl (vf, signed long long, float *);
4071 [VEC_STVRX, vec_stvrx, __builtin_vec_stvrx, __PPU__]
4072 void __builtin_vec_stvrx (vbc, signed long long, vbc *);
4074 void __builtin_vec_stvrx (vsc, signed long long, vsc *);
4076 void __builtin_vec_stvrx (vsc, signed long long, signed char *);
4078 void __builtin_vec_stvrx (vuc, signed long long, vuc *);
4080 void __builtin_vec_stvrx (vuc, signed long long, unsigned char *);
4082 void __builtin_vec_stvrx (vbs, signed long long, vbs *);
4084 void __builtin_vec_stvrx (vss, signed long long, vss *);
4086 void __builtin_vec_stvrx (vss, signed long long, signed short *);
4088 void __builtin_vec_stvrx (vus, signed long long, vus *);
4090 void __builtin_vec_stvrx (vus, signed long long, unsigned short *);
4092 void __builtin_vec_stvrx (vp, signed long long, vp *);
4094 void __builtin_vec_stvrx (vbi, signed long long, vbi *);
4096 void __builtin_vec_stvrx (vsi, signed long long, vsi *);
4098 void __builtin_vec_stvrx (vsi, signed long long, signed int *);
4100 void __builtin_vec_stvrx (vui, signed long long, vui *);
4102 void __builtin_vec_stvrx (vui, signed long long, unsigned int *);
4104 void __builtin_vec_stvrx (vf, signed long long, vf *);
4106 void __builtin_vec_stvrx (vf, signed long long, float *);
4109 [VEC_STVRXL, vec_stvrxl, __builtin_vec_stvrxl, __PPU__]
4110 void __builtin_vec_stvrxl (vbc, signed long long, vbc *);
4112 void __builtin_vec_stvrxl (vsc, signed long long, vsc *);
4114 void __builtin_vec_stvrxl (vsc, signed long long, signed char *);
4116 void __builtin_vec_stvrxl (vuc, signed long long, vuc *);
4118 void __builtin_vec_stvrxl (vuc, signed long long, unsigned char *);
4120 void __builtin_vec_stvrxl (vbs, signed long long, vbs *);
4122 void __builtin_vec_stvrxl (vss, signed long long, vss *);
4124 void __builtin_vec_stvrxl (vss, signed long long, signed short *);
4126 void __builtin_vec_stvrxl (vus, signed long long, vus *);
4128 void __builtin_vec_stvrxl (vus, signed long long, unsigned short *);
4130 void __builtin_vec_stvrxl (vp, signed long long, vp *);
4132 void __builtin_vec_stvrxl (vbi, signed long long, vbi *);
4134 void __builtin_vec_stvrxl (vsi, signed long long, vsi *);
4136 void __builtin_vec_stvrxl (vsi, signed long long, signed int *);
4138 void __builtin_vec_stvrxl (vui, signed long long, vui *);
4140 void __builtin_vec_stvrxl (vui, signed long long, unsigned int *);
4142 void __builtin_vec_stvrxl (vf, signed long long, vf *);
4144 void __builtin_vec_stvrxl (vf, signed long long, float *);
4147 [VEC_STXVL, vec_xst_len, __builtin_vec_stxvl, _ARCH_PPC64_PWR9]
4148 void __builtin_vec_stxvl (vsc, signed char *, unsigned int);
4150 void __builtin_vec_stxvl (vuc, unsigned char *, unsigned int);
4152 void __builtin_vec_stxvl (vss, signed short *, unsigned int);
4154 void __builtin_vec_stxvl (vus, unsigned short *, unsigned int);
4156 void __builtin_vec_stxvl (vsi, signed int *, unsigned int);
4158 void __builtin_vec_stxvl (vui, unsigned int *, unsigned int);
4160 void __builtin_vec_stxvl (vsll, signed long long *, unsigned int);
4162 void __builtin_vec_stxvl (vull, unsigned long long *, unsigned int);
4164 void __builtin_vec_stxvl (vsq, signed __int128 *, unsigned int);
4166 void __builtin_vec_stxvl (vuq, unsigned __int128 *, unsigned int);
4168 void __builtin_vec_stxvl (vf, float *, unsigned int);
4170 void __builtin_vec_stxvl (vd, double *, unsigned int);
4173 [VEC_SUB, vec_sub, __builtin_vec_sub]
4174 vsc __builtin_vec_sub (vsc, vsc);
4176 vuc __builtin_vec_sub (vuc, vuc);
4178 vss __builtin_vec_sub (vss, vss);
4180 vus __builtin_vec_sub (vus, vus);
4182 vsi __builtin_vec_sub (vsi, vsi);
4184 vui __builtin_vec_sub (vui, vui);
4186 vsll __builtin_vec_sub (vsll, vsll);
4187 VSUBUDM VSUBUDM_VSLL
4188 vull __builtin_vec_sub (vull, vull);
4189 VSUBUDM VSUBUDM_VULL
4190 vsq __builtin_vec_sub (vsq, vsq);
4192 vuq __builtin_vec_sub (vuq, vuq);
4194 vf __builtin_vec_sub (vf, vf);
4196 vd __builtin_vec_sub (vd, vd);
4198 ; The following variants are deprecated.
4199 vsc __builtin_vec_sub (vsc, vbc);
4200 VSUBUBM VSUBUBM_VSC_VBC
4201 vsc __builtin_vec_sub (vbc, vsc);
4202 VSUBUBM VSUBUBM_VBC_VSC
4203 vuc __builtin_vec_sub (vuc, vbc);
4204 VSUBUBM VSUBUBM_VUC_VBC
4205 vuc __builtin_vec_sub (vbc, vuc);
4206 VSUBUBM VSUBUBM_VBC_VUC
4207 vss __builtin_vec_sub (vss, vbs);
4208 VSUBUHM VSUBUHM_VSS_VBS
4209 vss __builtin_vec_sub (vbs, vss);
4210 VSUBUHM VSUBUHM_VBS_VSS
4211 vus __builtin_vec_sub (vus, vbs);
4212 VSUBUHM VSUBUHM_VUS_VBS
4213 vus __builtin_vec_sub (vbs, vus);
4214 VSUBUHM VSUBUHM_VBS_VUS
4215 vsi __builtin_vec_sub (vsi, vbi);
4216 VSUBUWM VSUBUWM_VSI_VBI
4217 vsi __builtin_vec_sub (vbi, vsi);
4218 VSUBUWM VSUBUWM_VBI_VSI
4219 vui __builtin_vec_sub (vui, vbi);
4220 VSUBUWM VSUBUWM_VUI_VBI
4221 vui __builtin_vec_sub (vbi, vui);
4222 VSUBUWM VSUBUWM_VBI_VUI
4223 vsll __builtin_vec_sub (vsll, vbll);
4224 VSUBUDM VSUBUDM_VSLL_VBLL
4225 vsll __builtin_vec_sub (vbll, vsll);
4226 VSUBUDM VSUBUDM_VBLL_VSLL
4227 vull __builtin_vec_sub (vull, vbll);
4228 VSUBUDM VSUBUDM_VULL_VBLL
4229 vull __builtin_vec_sub (vbll, vull);
4230 VSUBUDM VSUBUDM_VBLL_VULL
4232 [VEC_SUBC, vec_subc, __builtin_vec_subc]
4233 vsi __builtin_vec_subc (vsi, vsi);
4235 vui __builtin_vec_subc (vui, vui);
4237 vsq __builtin_vec_subc (vsq, vsq);
4239 vuq __builtin_vec_subc (vuq, vuq);
4242 ; TODO: Note that the entry for VEC_SUBE currently gets ignored in
4243 ; altivec_resolve_overloaded_builtin. Revisit whether we can remove
4244 ; that. We still need to register the legal builtin forms here.
4245 [VEC_SUBE, vec_sube, __builtin_vec_sube]
4246 vsq __builtin_vec_sube (vsq, vsq, vsq);
4247 VSUBEUQM VSUBEUQM_VSQ
4248 vuq __builtin_vec_sube (vuq, vuq, vuq);
4249 VSUBEUQM VSUBEUQM_VUQ
4251 ; TODO: Note that the entry for VEC_SUBEC currently gets ignored in
4252 ; altivec_resolve_overloaded_builtin. Revisit whether we can remove
4253 ; that. We still need to register the legal builtin forms here.
4254 [VEC_SUBEC, vec_subec, __builtin_vec_subec]
4255 vsq __builtin_vec_subec (vsq, vsq, vsq);
4256 VSUBECUQ VSUBECUQ_VSQ
4257 vuq __builtin_vec_subec (vuq, vuq, vuq);
4258 VSUBECUQ VSUBECUQ_VUQ
4260 [VEC_SUBS, vec_subs, __builtin_vec_subs]
4261 vuc __builtin_vec_subs (vuc, vuc);
4263 vsc __builtin_vec_subs (vsc, vsc);
4265 vus __builtin_vec_subs (vus, vus);
4267 vss __builtin_vec_subs (vss, vss);
4269 vui __builtin_vec_subs (vui, vui);
4271 vsi __builtin_vec_subs (vsi, vsi);
4273 ; The following variants are deprecated.
4274 vuc __builtin_vec_subs (vuc, vbc);
4276 vuc __builtin_vec_subs (vbc, vuc);
4278 vsc __builtin_vec_subs (vsc, vbc);
4280 vsc __builtin_vec_subs (vbc, vsc);
4282 vus __builtin_vec_subs (vus, vbs);
4284 vus __builtin_vec_subs (vbs, vus);
4286 vss __builtin_vec_subs (vss, vbs);
4288 vss __builtin_vec_subs (vbs, vss);
4290 vui __builtin_vec_subs (vui, vbi);
4292 vui __builtin_vec_subs (vbi, vui);
4294 vsi __builtin_vec_subs (vsi, vbi);
4296 vsi __builtin_vec_subs (vbi, vsi);
4299 [VEC_SUM2S, vec_sum2s, __builtin_vec_sum2s]
4300 vsi __builtin_vec_sum2s (vsi, vsi);
4303 [VEC_SUM4S, vec_sum4s, __builtin_vec_sum4s]
4304 vui __builtin_vec_sum4s (vuc, vui);
4306 vsi __builtin_vec_sum4s (vsc, vsi);
4308 vsi __builtin_vec_sum4s (vss, vsi);
4311 [VEC_SUMS, vec_sums, __builtin_vec_sums]
4312 vsi __builtin_vec_sums (vsi, vsi);
4315 [VEC_TERNARYLOGIC, vec_ternarylogic, __builtin_vec_xxeval, _ARCH_PWR10]
4316 vuc __builtin_vec_xxeval (vuc, vuc, vuc, const int);
4318 vus __builtin_vec_xxeval (vus, vus, vus, const int);
4320 vui __builtin_vec_xxeval (vui, vui, vui, const int);
4322 vull __builtin_vec_xxeval (vull, vull, vull, const int);
4324 vuq __builtin_vec_xxeval (vuq, vuq, vuq, const int);
4327 [VEC_TEST_LSBB_ALL_ONES, vec_test_lsbb_all_ones, __builtin_vec_xvtlsbb_all_ones, _ARCH_PWR9]
4328 signed int __builtin_vec_xvtlsbb_all_ones (vuc);
4331 [VEC_TEST_LSBB_ALL_ZEROS, vec_test_lsbb_all_zeros, __builtin_vec_xvtlsbb_all_zeros, _ARCH_PWR9]
4332 signed int __builtin_vec_xvtlsbb_all_zeros (vuc);
4335 [VEC_TRUNC, vec_trunc, __builtin_vec_trunc]
4336 vf __builtin_vec_trunc (vf);
4338 vd __builtin_vec_trunc (vd);
4341 [VEC_TSTSFI_GT, SKIP, __builtin_dfp_dtstsfi_gt]
4342 signed int __builtin_dfp_dtstsfi_gt (const int, _Decimal64);
4344 signed int __builtin_dfp_dtstsfi_gt (const int, _Decimal128);
4347 [VEC_TSTSFI_EQ, SKIP, __builtin_dfp_dtstsfi_eq]
4348 signed int __builtin_dfp_dtstsfi_eq (const int, _Decimal64);
4350 signed int __builtin_dfp_dtstsfi_eq (const int, _Decimal128);
4353 [VEC_TSTSFI_LT, SKIP, __builtin_dfp_dtstsfi_lt]
4354 signed int __builtin_dfp_dtstsfi_lt (const int, _Decimal64);
4356 signed int __builtin_dfp_dtstsfi_lt (const int, _Decimal128);
4359 [VEC_TSTSFI_OV, SKIP, __builtin_dfp_dtstsfi_ov]
4360 signed int __builtin_dfp_dtstsfi_ov (const int, _Decimal64);
4362 signed int __builtin_dfp_dtstsfi_ov (const int, _Decimal128);
4365 [VEC_UNPACKH, vec_unpackh, __builtin_vec_unpackh]
4366 vss __builtin_vec_unpackh (vsc);
4368 vbs __builtin_vec_unpackh (vbc);
4370 vsi __builtin_vec_unpackh (vss);
4372 vbi __builtin_vec_unpackh (vbs);
4374 vui __builtin_vec_unpackh (vp);
4376 vsll __builtin_vec_unpackh (vsi);
4378 vbll __builtin_vec_unpackh (vbi);
4380 vd __builtin_vec_unpackh (vf);
4383 [VEC_UNPACKL, vec_unpackl, __builtin_vec_unpackl]
4384 vss __builtin_vec_unpackl (vsc);
4386 vbs __builtin_vec_unpackl (vbc);
4388 vsi __builtin_vec_unpackl (vss);
4390 vbi __builtin_vec_unpackl (vbs);
4392 vui __builtin_vec_unpackl (vp);
4394 vsll __builtin_vec_unpackl (vsi);
4396 vbll __builtin_vec_unpackl (vbi);
4398 vd __builtin_vec_unpackl (vf);
4401 [VEC_UNSIGNED, vec_unsigned, __builtin_vec_vunsigned]
4402 vui __builtin_vec_vunsigned (vf);
4404 vull __builtin_vec_vunsigned (vd);
4407 [VEC_UNSIGNED2, vec_unsigned2, __builtin_vec_vunsigned2]
4408 vui __builtin_vec_vunsigned2 (vd, vd);
4411 [VEC_UNSIGNEDE, vec_unsignede, __builtin_vec_vunsignede]
4412 vui __builtin_vec_vunsignede (vd);
4415 [VEC_UNSIGNEDO, vec_unsignedo, __builtin_vec_vunsignedo]
4416 vui __builtin_vec_vunsignedo (vd);
4419 [VEC_VEE, vec_extract_exp, __builtin_vec_extract_exp, _ARCH_PWR9]
4420 vui __builtin_vec_extract_exp (vf);
4422 vull __builtin_vec_extract_exp (vd);
4425 [VEC_VES, vec_extract_sig, __builtin_vec_extract_sig, _ARCH_PWR9]
4426 vui __builtin_vec_extract_sig (vf);
4428 vull __builtin_vec_extract_sig (vd);
4431 [VEC_VIE, vec_insert_exp, __builtin_vec_insert_exp, _ARCH_PWR9]
4432 vf __builtin_vec_insert_exp (vf, vui);
4434 vf __builtin_vec_insert_exp (vui, vui);
4436 vd __builtin_vec_insert_exp (vd, vull);
4438 vd __builtin_vec_insert_exp (vull, vull);
4441 ; It is truly unfortunate that vec_vprtyb has an incompatible set of
4442 ; interfaces with vec_parity_lsbb. So we can't even deprecate this.
4443 [VEC_VPRTYB, vec_vprtyb, __builtin_vec_vprtyb, _ARCH_PWR9]
4444 vsi __builtin_vec_vprtyb (vsi);
4446 vui __builtin_vec_vprtyb (vui);
4448 vsll __builtin_vec_vprtyb (vsll);
4450 vull __builtin_vec_vprtyb (vull);
4452 vsq __builtin_vec_vprtyb (vsq);
4454 vuq __builtin_vec_vprtyb (vuq);
4456 signed __int128 __builtin_vec_vprtyb (signed __int128);
4458 unsigned __int128 __builtin_vec_vprtyb (unsigned __int128);
4461 [VEC_VSCEEQ, scalar_cmp_exp_eq, __builtin_vec_scalar_cmp_exp_eq, _ARCH_PWR9]
4462 signed int __builtin_vec_scalar_cmp_exp_eq (double, double);
4464 signed int __builtin_vec_scalar_cmp_exp_eq (_Float128, _Float128);
4467 [VEC_VSCEGT, scalar_cmp_exp_gt, __builtin_vec_scalar_cmp_exp_gt, _ARCH_PWR9]
4468 signed int __builtin_vec_scalar_cmp_exp_gt (double, double);
4470 signed int __builtin_vec_scalar_cmp_exp_gt (_Float128, _Float128);
4473 [VEC_VSCELT, scalar_cmp_exp_lt, __builtin_vec_scalar_cmp_exp_lt, _ARCH_PWR9]
4474 signed int __builtin_vec_scalar_cmp_exp_lt (double, double);
4476 signed int __builtin_vec_scalar_cmp_exp_lt (_Float128, _Float128);
4479 [VEC_VSCEUO, scalar_cmp_exp_unordered, __builtin_vec_scalar_cmp_exp_unordered, _ARCH_PWR9]
4480 signed int __builtin_vec_scalar_cmp_exp_unordered (double, double);
4482 signed int __builtin_vec_scalar_cmp_exp_unordered (_Float128, _Float128);
4485 [VEC_VSEE, scalar_extract_exp, __builtin_vec_scalar_extract_exp, _ARCH_PWR9]
4486 unsigned int __builtin_vec_scalar_extract_exp (double);
4488 unsigned int __builtin_vec_scalar_extract_exp (_Float128);
4491 [VEC_VSES, scalar_extract_sig, __builtin_vec_scalar_extract_sig, _ARCH_PWR9]
4492 unsigned long long __builtin_vec_scalar_extract_sig (double);
4494 unsigned __int128 __builtin_vec_scalar_extract_sig (_Float128);
4497 [VEC_VSIE, scalar_insert_exp, __builtin_vec_scalar_insert_exp, _ARCH_PWR9]
4498 double __builtin_vec_scalar_insert_exp (unsigned long long, unsigned long long);
4500 double __builtin_vec_scalar_insert_exp (double, unsigned long long);
4502 _Float128 __builtin_vec_scalar_insert_exp (unsigned __int128, unsigned long long);
4504 _Float128 __builtin_vec_scalar_insert_exp (_Float128, unsigned long long);
4507 [VEC_VSTDC, scalar_test_data_class, __builtin_vec_scalar_test_data_class, _ARCH_PWR9]
4508 unsigned int __builtin_vec_scalar_test_data_class (float, const int);
4510 unsigned int __builtin_vec_scalar_test_data_class (double, const int);
4512 unsigned int __builtin_vec_scalar_test_data_class (_Float128, const int);
4515 [VEC_VSTDCN, scalar_test_neg, __builtin_vec_scalar_test_neg, _ARCH_PWR9]
4516 unsigned int __builtin_vec_scalar_test_neg (float);
4518 unsigned int __builtin_vec_scalar_test_neg (double);
4520 unsigned int __builtin_vec_scalar_test_neg (_Float128);
4523 [VEC_VTDC, vec_test_data_class, __builtin_vec_test_data_class, _ARCH_PWR9]
4524 vbi __builtin_vec_test_data_class (vf, const int);
4526 vbll __builtin_vec_test_data_class (vd, const int);
4529 [VEC_XL, vec_xl, __builtin_vec_vsx_ld, __VSX__]
4530 vsc __builtin_vec_vsx_ld (signed long long, const vsc *);
4531 LXVW4X_V16QI LXVW4X_VSC
4532 vsc __builtin_vec_vsx_ld (signed long long, const signed char *);
4533 LXVW4X_V16QI LXVW4X_SC
4534 vuc __builtin_vec_vsx_ld (signed long long, const vuc *);
4535 LXVW4X_V16QI LXVW4X_VUC
4536 vuc __builtin_vec_vsx_ld (signed long long, const unsigned char *);
4537 LXVW4X_V16QI LXVW4X_UC
4538 vbc __builtin_vec_vsx_ld (signed long long, const vbc *);
4539 LXVW4X_V16QI LXVW4X_VBC
4540 vss __builtin_vec_vsx_ld (signed long long, const vss *);
4541 LXVW4X_V8HI LXVW4X_VSS
4542 vss __builtin_vec_vsx_ld (signed long long, const signed short *);
4543 LXVW4X_V8HI LXVW4X_SS
4544 vus __builtin_vec_vsx_ld (signed long long, const vus *);
4545 LXVW4X_V8HI LXVW4X_VUS
4546 vus __builtin_vec_vsx_ld (signed long long, const unsigned short *);
4547 LXVW4X_V8HI LXVW4X_US
4548 vbs __builtin_vec_vsx_ld (signed long long, const vbs *);
4549 LXVW4X_V8HI LXVW4X_VBS
4550 vp __builtin_vec_vsx_ld (signed long long, const vp *);
4551 LXVW4X_V8HI LXVW4X_P
4552 vsi __builtin_vec_vsx_ld (signed long long, const vsi *);
4553 LXVW4X_V4SI LXVW4X_VSI
4554 vsi __builtin_vec_vsx_ld (signed long long, const signed int *);
4555 LXVW4X_V4SI LXVW4X_SI
4556 vui __builtin_vec_vsx_ld (signed long long, const vui *);
4557 LXVW4X_V4SI LXVW4X_VUI
4558 vui __builtin_vec_vsx_ld (signed long long, const unsigned int *);
4559 LXVW4X_V4SI LXVW4X_UI
4560 vbi __builtin_vec_vsx_ld (signed long long, const vbi *);
4561 LXVW4X_V4SI LXVW4X_VBI
4562 vsll __builtin_vec_vsx_ld (signed long long, const vsll *);
4563 LXVD2X_V2DI LXVD2X_VSLL
4564 vsll __builtin_vec_vsx_ld (signed long long, const signed long long *);
4565 LXVD2X_V2DI LXVD2X_SLL
4566 vull __builtin_vec_vsx_ld (signed long long, const vull *);
4567 LXVD2X_V2DI LXVD2X_VULL
4568 vull __builtin_vec_vsx_ld (signed long long, const unsigned long long *);
4569 LXVD2X_V2DI LXVD2X_ULL
4570 vbll __builtin_vec_vsx_ld (signed long long, const vbll *);
4571 LXVD2X_V2DI LXVD2X_VBLL
4572 vsq __builtin_vec_vsx_ld (signed long long, const vsq *);
4573 LXVD2X_V1TI LXVD2X_VSQ
4574 vsq __builtin_vec_vsx_ld (signed long long, const signed __int128 *);
4575 LXVD2X_V1TI LXVD2X_SQ
4576 vuq __builtin_vec_vsx_ld (signed long long, const unsigned __int128 *);
4577 LXVD2X_V1TI LXVD2X_UQ
4578 vf __builtin_vec_vsx_ld (signed long long, const vf *);
4579 LXVW4X_V4SF LXVW4X_VF
4580 vf __builtin_vec_vsx_ld (signed long long, const float *);
4581 LXVW4X_V4SF LXVW4X_F
4582 vd __builtin_vec_vsx_ld (signed long long, const vd *);
4583 LXVD2X_V2DF LXVD2X_VD
4584 vd __builtin_vec_vsx_ld (signed long long, const double *);
4585 LXVD2X_V2DF LXVD2X_D
4587 [VEC_XL_BE, vec_xl_be, __builtin_vec_xl_be, __VSX__]
4588 vsc __builtin_vec_xl_be (signed long long, const vsc *);
4589 LD_ELEMREV_V16QI LD_ELEMREV_VSC
4590 vsc __builtin_vec_xl_be (signed long long, const signed char *);
4591 LD_ELEMREV_V16QI LD_ELEMREV_SC
4592 vuc __builtin_vec_xl_be (signed long long, const vuc *);
4593 LD_ELEMREV_V16QI LD_ELEMREV_VUC
4594 vuc __builtin_vec_xl_be (signed long long, const unsigned char *);
4595 LD_ELEMREV_V16QI LD_ELEMREV_UC
4596 vss __builtin_vec_xl_be (signed long long, const vss *);
4597 LD_ELEMREV_V8HI LD_ELEMREV_VSS
4598 vss __builtin_vec_xl_be (signed long long, const signed short *);
4599 LD_ELEMREV_V8HI LD_ELEMREV_SS
4600 vus __builtin_vec_xl_be (signed long long, const vus *);
4601 LD_ELEMREV_V8HI LD_ELEMREV_VUS
4602 vus __builtin_vec_xl_be (signed long long, const unsigned short *);
4603 LD_ELEMREV_V8HI LD_ELEMREV_US
4604 vsi __builtin_vec_xl_be (signed long long, const vsi *);
4605 LD_ELEMREV_V4SI LD_ELEMREV_VSI
4606 vsi __builtin_vec_xl_be (signed long long, const signed int *);
4607 LD_ELEMREV_V4SI LD_ELEMREV_SI
4608 vui __builtin_vec_xl_be (signed long long, const vui *);
4609 LD_ELEMREV_V4SI LD_ELEMREV_VUI
4610 vui __builtin_vec_xl_be (signed long long, const unsigned int *);
4611 LD_ELEMREV_V4SI LD_ELEMREV_UI
4612 vsll __builtin_vec_xl_be (signed long long, const vsll *);
4613 LD_ELEMREV_V2DI LD_ELEMREV_VSLL
4614 vsll __builtin_vec_xl_be (signed long long, const signed long long *);
4615 LD_ELEMREV_V2DI LD_ELEMREV_SLL
4616 vull __builtin_vec_xl_be (signed long long, const vull *);
4617 LD_ELEMREV_V2DI LD_ELEMREV_VULL
4618 vull __builtin_vec_xl_be (signed long long, const unsigned long long *);
4619 LD_ELEMREV_V2DI LD_ELEMREV_ULL
4620 vsq __builtin_vec_xl_be (signed long long, const signed __int128 *);
4621 LD_ELEMREV_V1TI LD_ELEMREV_SQ
4622 vuq __builtin_vec_xl_be (signed long long, const unsigned __int128 *);
4623 LD_ELEMREV_V1TI LD_ELEMREV_UQ
4624 vf __builtin_vec_xl_be (signed long long, const vf *);
4625 LD_ELEMREV_V4SF LD_ELEMREV_VF
4626 vf __builtin_vec_xl_be (signed long long, const float *);
4627 LD_ELEMREV_V4SF LD_ELEMREV_F
4628 vd __builtin_vec_xl_be (signed long long, const vd *);
4629 LD_ELEMREV_V2DF LD_ELEMREV_VD
4630 vd __builtin_vec_xl_be (signed long long, const double *);
4631 LD_ELEMREV_V2DF LD_ELEMREV_DD
4633 [VEC_XL_LEN_R, vec_xl_len_r, __builtin_vec_xl_len_r, _ARCH_PPC64_PWR9]
4634 vuc __builtin_vsx_xl_len_r (const unsigned char *, unsigned int);
4637 [VEC_XL_SEXT, vec_xl_sext, __builtin_vec_xl_sext, _ARCH_PWR10]
4638 vsq __builtin_vec_xl_sext (signed long long, const signed char *);
4640 vsq __builtin_vec_xl_sext (signed long long, const signed short *);
4642 vsq __builtin_vec_xl_sext (signed long long, const signed int *);
4644 vsq __builtin_vec_xl_sext (signed long long, const signed long long *);
4647 [VEC_XL_ZEXT, vec_xl_zext, __builtin_vec_xl_zext, _ARCH_PWR10]
4648 vuq __builtin_vec_xl_zext (signed long long, const unsigned char *);
4650 vuq __builtin_vec_xl_zext (signed long long, const unsigned short *);
4652 vuq __builtin_vec_xl_zext (signed long long, const unsigned int *);
4654 vuq __builtin_vec_xl_zext (signed long long, const unsigned long long *);
4657 [VEC_XOR, vec_xor, __builtin_vec_xor]
4658 vsc __builtin_vec_xor (vsc, vsc);
4660 vuc __builtin_vec_xor (vuc, vuc);
4661 VXOR_V16QI_UNS VXOR_VUC
4662 vbc __builtin_vec_xor (vbc, vbc);
4663 VXOR_V16QI_UNS VXOR_VBC
4664 vss __builtin_vec_xor (vss, vss);
4666 vus __builtin_vec_xor (vus, vus);
4667 VXOR_V8HI_UNS VXOR_VUS
4668 vbs __builtin_vec_xor (vbs, vbs);
4669 VXOR_V8HI_UNS VXOR_VBS
4670 vsi __builtin_vec_xor (vsi, vsi);
4672 vui __builtin_vec_xor (vui, vui);
4673 VXOR_V4SI_UNS VXOR_VUI
4674 vbi __builtin_vec_xor (vbi, vbi);
4675 VXOR_V4SI_UNS VXOR_VBI
4676 vsll __builtin_vec_xor (vsll, vsll);
4678 vull __builtin_vec_xor (vull, vull);
4679 VXOR_V2DI_UNS VXOR_VULL
4680 vbll __builtin_vec_xor (vbll, vbll);
4681 VXOR_V2DI_UNS VXOR_VBLL
4682 vf __builtin_vec_xor (vf, vf);
4684 vd __builtin_vec_xor (vd, vd);
4686 ; The following variants are deprecated.
4687 vsc __builtin_vec_xor (vsc, vbc);
4688 VXOR_V16QI VXOR_VSC_VBC
4689 vsc __builtin_vec_xor (vbc, vsc);
4690 VXOR_V16QI VXOR_VBC_VSC
4691 vsc __builtin_vec_xor (vsc, vuc);
4692 VXOR_V16QI VXOR_VSC_VUC
4693 vuc __builtin_vec_xor (vuc, vbc);
4694 VXOR_V16QI_UNS VXOR_VUC_VBC
4695 vuc __builtin_vec_xor (vbc, vuc);
4696 VXOR_V16QI_UNS VXOR_VBC_VUC
4697 vuc __builtin_vec_xor (vuc, vsc);
4698 VXOR_V16QI_UNS VXOR_VUC_VSC
4699 vss __builtin_vec_xor (vss, vbs);
4700 VXOR_V8HI VXOR_VSS_VBS
4701 vss __builtin_vec_xor (vbs, vss);
4702 VXOR_V8HI VXOR_VBS_VSS
4703 vus __builtin_vec_xor (vus, vbs);
4704 VXOR_V8HI_UNS VXOR_VUS_VBS
4705 vus __builtin_vec_xor (vbs, vus);
4706 VXOR_V8HI_UNS VXOR_VBS_VUS
4707 vsi __builtin_vec_xor (vsi, vbi);
4708 VXOR_V4SI VXOR_VSI_VBI
4709 vsi __builtin_vec_xor (vbi, vsi);
4710 VXOR_V4SI VXOR_VBI_VSI
4711 vui __builtin_vec_xor (vui, vbi);
4712 VXOR_V4SI_UNS VXOR_VUI_VBI
4713 vui __builtin_vec_xor (vbi, vui);
4714 VXOR_V4SI_UNS VXOR_VBI_VUI
4715 vsll __builtin_vec_xor (vsll, vbll);
4716 VXOR_V2DI VXOR_VSLL_VBLL
4717 vsll __builtin_vec_xor (vbll, vsll);
4718 VXOR_V2DI VXOR_VBLL_VSLL
4719 vull __builtin_vec_xor (vull, vbll);
4720 VXOR_V2DI_UNS VXOR_VULL_VBLL
4721 vull __builtin_vec_xor (vbll, vull);
4722 VXOR_V2DI_UNS VXOR_VBLL_VULL
4723 vf __builtin_vec_xor (vf, vbi);
4724 VXOR_V4SF VXOR_VF_VBI
4725 vf __builtin_vec_xor (vbi, vf);
4726 VXOR_V4SF VXOR_VBI_VF
4727 vd __builtin_vec_xor (vd, vbll);
4728 VXOR_V2DF VXOR_VD_VBLL
4729 vd __builtin_vec_xor (vbll, vd);
4730 VXOR_V2DF VXOR_VBLL_VD
4732 [VEC_XST, vec_xst, __builtin_vec_vsx_st, __VSX__]
4733 void __builtin_vec_vsx_st (vsc, signed long long, vsc *);
4734 STXVW4X_V16QI STXVW4X_VSC
4735 void __builtin_vec_vsx_st (vsc, signed long long, signed char *);
4736 STXVW4X_V16QI STXVW4X_SC
4737 void __builtin_vec_vsx_st (vuc, signed long long, vuc *);
4738 STXVW4X_V16QI STXVW4X_VUC
4739 void __builtin_vec_vsx_st (vuc, signed long long, unsigned char *);
4740 STXVW4X_V16QI STXVW4X_UC
4741 void __builtin_vec_vsx_st (vbc, signed long long, vbc *);
4742 STXVW4X_V16QI STXVW4X_VBC
4743 void __builtin_vec_vsx_st (vbc, signed long long, signed char *);
4744 STXVW4X_V16QI STXVW4X_VBC_S
4745 void __builtin_vec_vsx_st (vbc, signed long long, unsigned char *);
4746 STXVW4X_V16QI STXVW4X_VBC_U
4747 void __builtin_vec_vsx_st (vss, signed long long, vss *);
4748 STXVW4X_V8HI STXVW4X_VSS
4749 void __builtin_vec_vsx_st (vss, signed long long, signed short *);
4750 STXVW4X_V8HI STXVW4X_SS
4751 void __builtin_vec_vsx_st (vus, signed long long, vus *);
4752 STXVW4X_V8HI STXVW4X_VUS
4753 void __builtin_vec_vsx_st (vus, signed long long, unsigned short *);
4754 STXVW4X_V8HI STXVW4X_US
4755 void __builtin_vec_vsx_st (vbs, signed long long, vbs *);
4756 STXVW4X_V8HI STXVW4X_VBS
4757 void __builtin_vec_vsx_st (vbs, signed long long, signed short *);
4758 STXVW4X_V8HI STXVW4X_VBS_S
4759 void __builtin_vec_vsx_st (vbs, signed long long, unsigned short *);
4760 STXVW4X_V8HI STXVW4X_VBS_U
4761 void __builtin_vec_vsx_st (vp, signed long long, vp *);
4762 STXVW4X_V8HI STXVW4X_VP
4763 void __builtin_vec_vsx_st (vsi, signed long long, vsi *);
4764 STXVW4X_V4SI STXVW4X_VSI
4765 void __builtin_vec_vsx_st (vsi, signed long long, signed int *);
4766 STXVW4X_V4SI STXVW4X_SI
4767 void __builtin_vec_vsx_st (vui, signed long long, vui *);
4768 STXVW4X_V4SI STXVW4X_VUI
4769 void __builtin_vec_vsx_st (vui, signed long long, unsigned int *);
4770 STXVW4X_V4SI STXVW4X_UI
4771 void __builtin_vec_vsx_st (vbi, signed long long, vbi *);
4772 STXVW4X_V4SI STXVW4X_VBI
4773 void __builtin_vec_vsx_st (vbi, signed long long, signed int *);
4774 STXVW4X_V4SI STXVW4X_VBI_S
4775 void __builtin_vec_vsx_st (vbi, signed long long, unsigned int *);
4776 STXVW4X_V4SI STXVW4X_VBI_U
4777 void __builtin_vec_vsx_st (vsll, signed long long, vsll *);
4778 STXVD2X_V2DI STXVD2X_VSLL
4779 void __builtin_vec_vsx_st (vsll, signed long long, signed long long *);
4780 STXVD2X_V2DI STXVD2X_SLL
4781 void __builtin_vec_vsx_st (vull, signed long long, vull *);
4782 STXVD2X_V2DI STXVD2X_VULL
4783 void __builtin_vec_vsx_st (vull, signed long long, unsigned long long *);
4784 STXVD2X_V2DI STXVD2X_ULL
4785 void __builtin_vec_vsx_st (vbll, signed long long, vbll *);
4786 STXVD2X_V2DI STXVD2X_VBLL
4787 void __builtin_vec_vsx_st (vsq, signed long long, signed __int128 *);
4788 STXVD2X_V1TI STXVD2X_SQ
4789 void __builtin_vec_vsx_st (vuq, signed long long, unsigned __int128 *);
4790 STXVD2X_V1TI STXVD2X_UQ
4791 void __builtin_vec_vsx_st (vf, signed long long, vf *);
4792 STXVW4X_V4SF STXVW4X_VF
4793 void __builtin_vec_vsx_st (vf, signed long long, float *);
4794 STXVW4X_V4SF STXVW4X_F
4795 void __builtin_vec_vsx_st (vd, signed long long, vd *);
4796 STXVD2X_V2DF STXVD2X_VD
4797 void __builtin_vec_vsx_st (vd, signed long long, double *);
4798 STXVD2X_V2DF STXVD2X_D
4800 [VEC_XST_BE, vec_xst_be, __builtin_vec_xst_be, __VSX__]
4801 void __builtin_vec_xst_be (vsc, signed long long, vsc *);
4802 ST_ELEMREV_V16QI ST_ELEMREV_VSC
4803 void __builtin_vec_xst_be (vsc, signed long long, signed char *);
4804 ST_ELEMREV_V16QI ST_ELEMREV_SC_
4805 void __builtin_vec_xst_be (vuc, signed long long, vuc *);
4806 ST_ELEMREV_V16QI ST_ELEMREV_VUC
4807 void __builtin_vec_xst_be (vuc, signed long long, unsigned char *);
4808 ST_ELEMREV_V16QI ST_ELEMREV_UC
4809 void __builtin_vec_xst_be (vss, signed long long, vss *);
4810 ST_ELEMREV_V8HI ST_ELEMREV_VSS
4811 void __builtin_vec_xst_be (vss, signed long long, signed short *);
4812 ST_ELEMREV_V8HI ST_ELEMREV_SS
4813 void __builtin_vec_xst_be (vus, signed long long, vus *);
4814 ST_ELEMREV_V8HI ST_ELEMREV_VUS
4815 void __builtin_vec_xst_be (vus, signed long long, unsigned short *);
4816 ST_ELEMREV_V8HI ST_ELEMREV_US
4817 void __builtin_vec_xst_be (vsi, signed long long, vsi *);
4818 ST_ELEMREV_V4SI ST_ELEMREV_VSI
4819 void __builtin_vec_xst_be (vsi, signed long long, signed int *);
4820 ST_ELEMREV_V4SI ST_ELEMREV_SI
4821 void __builtin_vec_xst_be (vui, signed long long, vui *);
4822 ST_ELEMREV_V4SI ST_ELEMREV_VUI
4823 void __builtin_vec_xst_be (vui, signed long long, unsigned int *);
4824 ST_ELEMREV_V4SI ST_ELEMREV_UI
4825 void __builtin_vec_xst_be (vsll, signed long long, vsll *);
4826 ST_ELEMREV_V2DI ST_ELEMREV_VSLL
4827 void __builtin_vec_xst_be (vsll, signed long long, signed long long *);
4828 ST_ELEMREV_V2DI ST_ELEMREV_SLL
4829 void __builtin_vec_xst_be (vull, signed long long, vull *);
4830 ST_ELEMREV_V2DI ST_ELEMREV_VULL
4831 void __builtin_vec_xst_be (vull, signed long long, unsigned long long *);
4832 ST_ELEMREV_V2DI ST_ELEMREV_ULL
4833 void __builtin_vec_xst_be (vsq, signed long long, signed __int128 *);
4834 ST_ELEMREV_V1TI ST_ELEMREV_SQ
4835 void __builtin_vec_xst_be (vuq, signed long long, unsigned __int128 *);
4836 ST_ELEMREV_V1TI ST_ELEMREV_UQ
4837 void __builtin_vec_xst_be (vf, signed long long, vf *);
4838 ST_ELEMREV_V4SF ST_ELEMREV_VF
4839 void __builtin_vec_xst_be (vf, signed long long, float *);
4840 ST_ELEMREV_V4SF ST_ELEMREV_F
4841 void __builtin_vec_xst_be (vd, signed long long, vd *);
4842 ST_ELEMREV_V2DF ST_ELEMREV_VD
4843 void __builtin_vec_xst_be (vd, signed long long, double *);
4844 ST_ELEMREV_V2DF ST_ELEMREV_D
4846 [VEC_XST_LEN_R, vec_xst_len_r, __builtin_vec_xst_len_r, _ARCH_PPC64_PWR9]
4847 void __builtin_vsx_xst_len_r (vuc, unsigned char *, unsigned int);
4850 [VEC_XST_TRUNC, vec_xst_trunc, __builtin_vec_xst_trunc, _ARCH_PWR10]
4851 void __builtin_vec_xst_trunc (vsq, signed long long, signed char *);
4852 TR_STXVRBX TR_STXVRBX_S
4853 void __builtin_vec_xst_trunc (vuq, signed long long, unsigned char *);
4854 TR_STXVRBX TR_STXVRBX_U
4855 void __builtin_vec_xst_trunc (vsq, signed long long, signed short *);
4856 TR_STXVRHX TR_STXVRHX_S
4857 void __builtin_vec_xst_trunc (vuq, signed long long, unsigned short *);
4858 TR_STXVRHX TR_STXVRHX_U
4859 void __builtin_vec_xst_trunc (vsq, signed long long, signed int *);
4860 TR_STXVRWX TR_STXVRWX_S
4861 void __builtin_vec_xst_trunc (vuq, signed long long, unsigned int *);
4862 TR_STXVRWX TR_STXVRWX_U
4863 void __builtin_vec_xst_trunc (vsq, signed long long, signed long long *);
4864 TR_STXVRDX TR_STXVRDX_S
4865 void __builtin_vec_xst_trunc (vuq, signed long long, unsigned long long *);
4866 TR_STXVRDX TR_STXVRDX_U
4868 [VEC_XXPERMDI, vec_xxpermdi, __builtin_vsx_xxpermdi, __VSX__]
4869 vsc __builtin_vsx_xxpermdi (vsc, vsc, const int);
4870 XXPERMDI_16QI XXPERMDI_VSC
4871 vuc __builtin_vsx_xxpermdi (vuc, vuc, const int);
4872 XXPERMDI_16QI XXPERMDI_VUC
4873 vss __builtin_vsx_xxpermdi (vss, vss, const int);
4874 XXPERMDI_8HI XXPERMDI_VSS
4875 vus __builtin_vsx_xxpermdi (vus, vus, const int);
4876 XXPERMDI_8HI XXPERMDI_VUS
4877 vsi __builtin_vsx_xxpermdi (vsi, vsi, const int);
4878 XXPERMDI_4SI XXPERMDI_VSI
4879 vui __builtin_vsx_xxpermdi (vui, vui, const int);
4880 XXPERMDI_4SI XXPERMDI_VUI
4881 vsll __builtin_vsx_xxpermdi (vsll, vsll, const int);
4882 XXPERMDI_2DI XXPERMDI_VSLL
4883 vull __builtin_vsx_xxpermdi (vull, vull, const int);
4884 XXPERMDI_2DI XXPERMDI_VULL
4885 vf __builtin_vsx_xxpermdi (vf, vf, const int);
4886 XXPERMDI_4SF XXPERMDI_VF
4887 vd __builtin_vsx_xxpermdi (vd, vd, const int);
4888 XXPERMDI_2DF XXPERMDI_VD
4890 [VEC_XXSLDWI, vec_xxsldwi, __builtin_vsx_xxsldwi, __VSX__]
4891 vsc __builtin_vsx_xxsldwi (vsc, vsc, const int);
4892 XXSLDWI_16QI XXSLDWI_VSC2
4893 vuc __builtin_vsx_xxsldwi (vuc, vuc, const int);
4894 XXSLDWI_16QI XXSLDWI_VUC2
4895 vss __builtin_vsx_xxsldwi (vss, vss, const int);
4896 XXSLDWI_8HI XXSLDWI_VSS2
4897 vus __builtin_vsx_xxsldwi (vus, vus, const int);
4898 XXSLDWI_8HI XXSLDWI_VUS2
4899 vsi __builtin_vsx_xxsldwi (vsi, vsi, const int);
4900 XXSLDWI_4SI XXSLDWI_VSI2
4901 vui __builtin_vsx_xxsldwi (vui, vui, const int);
4902 XXSLDWI_4SI XXSLDWI_VUI2
4903 vsll __builtin_vsx_xxsldwi (vsll, vsll, const int);
4904 XXSLDWI_2DI XXSLDWI_VSLL2
4905 vull __builtin_vsx_xxsldwi (vull, vull, const int);
4906 XXSLDWI_2DI XXSLDWI_VULL2
4907 vf __builtin_vsx_xxsldwi (vf, vf, const int);
4908 XXSLDWI_4SF XXSLDWI_VF2
4909 vd __builtin_vsx_xxsldwi (vd, vd, const int);
4910 XXSLDWI_2DF XXSLDWI_VD2
4913 ; **************************************************************************
4914 ; **************************************************************************
4915 ; **** Deprecated overloads that should never have existed at all ****
4916 ; **************************************************************************
4917 ; **************************************************************************
4919 [VEC_LVEBX, vec_lvebx, __builtin_vec_lvebx]
4920 vsc __builtin_vec_lvebx (signed long, signed char *);
4922 vuc __builtin_vec_lvebx (signed long, unsigned char *);
4925 [VEC_LVEHX, vec_lvehx, __builtin_vec_lvehx]
4926 vss __builtin_vec_lvehx (signed long, signed short *);
4928 vus __builtin_vec_lvehx (signed long, unsigned short *);
4931 [VEC_LVEWX, vec_lvewx, __builtin_vec_lvewx]
4932 vf __builtin_vec_lvewx (signed long, float *);
4934 vsi __builtin_vec_lvewx (signed long, signed int *);
4936 vui __builtin_vec_lvewx (signed long, unsigned int *);
4938 vsi __builtin_vec_lvewx (signed long, signed long *);
4940 vui __builtin_vec_lvewx (signed long, unsigned long *);
4943 [VEC_STVEBX, vec_stvebx, __builtin_vec_stvebx]
4944 void __builtin_vec_stvebx (vsc, signed long, signed char *);
4946 void __builtin_vec_stvebx (vuc, signed long, unsigned char *);
4948 void __builtin_vec_stvebx (vbc, signed long, signed char *);
4950 void __builtin_vec_stvebx (vbc, signed long, signed char *);
4952 void __builtin_vec_stvebx (vsc, signed long, void *);
4954 void __builtin_vec_stvebx (vuc, signed long, void *);
4957 [VEC_STVEHX, vec_stvehx, __builtin_vec_stvehx]
4958 void __builtin_vec_stvehx (vss, signed long, signed short *);
4960 void __builtin_vec_stvehx (vus, signed long, unsigned short *);
4962 void __builtin_vec_stvehx (vbs, signed long, signed short *);
4964 void __builtin_vec_stvehx (vbs, signed long, signed short *);
4966 void __builtin_vec_stvehx (vss, signed long, void *);
4968 void __builtin_vec_stvehx (vus, signed long, void *);
4971 [VEC_STVEWX, vec_stvewx, __builtin_vec_stvewx]
4972 void __builtin_vec_stvewx (vf, signed long, float *);
4974 void __builtin_vec_stvewx (vsi, signed long, signed int *);
4976 void __builtin_vec_stvewx (vui, signed long, unsigned int *);
4978 void __builtin_vec_stvewx (vbi, signed long, signed int *);
4980 void __builtin_vec_stvewx (vbi, signed long, unsigned int *);
4982 void __builtin_vec_stvewx (vf, signed long, void *);
4984 void __builtin_vec_stvewx (vsi, signed long, void *);
4986 void __builtin_vec_stvewx (vui, signed long, void *);
4989 [VEC_TSTSFI_EQ_DD, SKIP, __builtin_dfp_dtstsfi_eq_dd, _ARCH_PWR9]
4990 signed int __builtin_dfp_dtstsfi_eq_dd (const int, _Decimal64);
4991 TSTSFI_EQ_DD TSTSFI_EQ_DD_DEPR1
4993 [VEC_TSTSFI_EQ_TD, SKIP, __builtin_dfp_dtstsfi_eq_td, _ARCH_PWR9]
4994 signed int __builtin_dfp_dtstsfi_eq_td (const int, _Decimal128);
4995 TSTSFI_EQ_TD TSTSFI_EQ_TD_DEPR1
4997 [VEC_TSTSFI_GT_DD, SKIP, __builtin_dfp_dtstsfi_gt_dd, _ARCH_PWR9]
4998 signed int __builtin_dfp_dtstsfi_gt_dd (const int, _Decimal64);
4999 TSTSFI_GT_DD TSTSFI_GT_DD_DEPR1
5001 [VEC_TSTSFI_GT_TD, SKIP, __builtin_dfp_dtstsfi_gt_td, _ARCH_PWR9]
5002 signed int __builtin_dfp_dtstsfi_gt_td (const int, _Decimal128);
5003 TSTSFI_GT_TD TSTSFI_GT_TD_DEPR1
5005 [VEC_TSTSFI_LT_DD, SKIP, __builtin_dfp_dtstsfi_lt_dd, _ARCH_PWR9]
5006 signed int __builtin_dfp_dtstsfi_lt_dd (const int, _Decimal64);
5007 TSTSFI_LT_DD TSTSFI_LT_DD_DEPR1
5009 [VEC_TSTSFI_LT_TD, SKIP, __builtin_dfp_dtstsfi_lt_td, _ARCH_PWR9]
5010 signed int __builtin_dfp_dtstsfi_lt_td (const int, _Decimal128);
5011 TSTSFI_LT_TD TSTSFI_LT_TD_DEPR1
5013 [VEC_TSTSFI_OV_DD, SKIP, __builtin_dfp_dtstsfi_ov_dd, _ARCH_PWR9]
5014 signed int __builtin_dfp_dtstsfi_ov_dd (const int, _Decimal64);
5015 TSTSFI_OV_DD TSTSFI_OV_DD_DEPR1
5017 [VEC_TSTSFI_OV_TD, SKIP, __builtin_dfp_dtstsfi_ov_td, _ARCH_PWR9]
5018 signed int __builtin_dfp_dtstsfi_ov_td (const int, _Decimal128);
5019 TSTSFI_OV_TD TSTSFI_OV_TD_DEPR1
5021 [VEC_VADDCUQ, vec_vaddcuq, __builtin_vec_vaddcuq, _ARCH_PWR8]
5022 vsq __builtin_vec_vaddcuq (vsq, vsq);
5023 VADDCUQ VADDCUQ_DEPR1
5024 vuq __builtin_vec_vaddcuq (vuq, vuq);
5025 VADDCUQ VADDCUQ_DEPR2
5027 [VEC_VADDECUQ, vec_vaddecuq, __builtin_vec_vaddecuq, _ARCH_PWR8]
5028 vsq __builtin_vec_vaddecuq (vsq, vsq, vsq);
5029 VADDECUQ VADDECUQ_DEPR1
5030 vuq __builtin_vec_vaddecuq (vuq, vuq, vuq);
5031 VADDECUQ VADDECUQ_DEPR2
5033 [VEC_VADDEUQM, vec_vaddeuqm, __builtin_vec_vaddeuqm, _ARCH_PWR8]
5034 vsq __builtin_vec_vaddeuqm (vsq, vsq, vsq);
5035 VADDEUQM VADDEUQM_DEPR1
5036 vuq __builtin_vec_vaddeuqm (vuq, vuq, vuq);
5037 VADDEUQM VADDEUQM_DEPR2
5039 [VEC_VADDFP, vec_vaddfp, __builtin_vec_vaddfp]
5040 vf __builtin_vec_vaddfp (vf, vf);
5043 [VEC_VADDSBS, vec_vaddsbs, __builtin_vec_vaddsbs]
5044 vsc __builtin_vec_vaddsbs (vsc, vsc);
5045 VADDSBS VADDSBS_DEPR1
5046 vsc __builtin_vec_vaddsbs (vbc, vsc);
5047 VADDSBS VADDSBS_DEPR2
5048 vsc __builtin_vec_vaddsbs (vsc, vbc);
5049 VADDSBS VADDSBS_DEPR3
5051 [VEC_VADDSHS, vec_vaddshs, __builtin_vec_vaddshs]
5052 vss __builtin_vec_vaddshs (vss, vss);
5053 VADDSHS VADDSHS_DEPR1
5054 vss __builtin_vec_vaddshs (vbs, vss);
5055 VADDSHS VADDSHS_DEPR2
5056 vss __builtin_vec_vaddshs (vss, vbs);
5057 VADDSHS VADDSHS_DEPR3
5059 [VEC_VADDSWS, vec_vaddsws, __builtin_vec_vaddsws]
5060 vsi __builtin_vec_vaddsws (vsi, vsi);
5061 VADDSWS VADDSWS_DEPR1
5062 vsi __builtin_vec_vaddsws (vbi, vsi);
5063 VADDSWS VADDSWS_DEPR2
5064 vsi __builtin_vec_vaddsws (vsi, vbi);
5065 VADDSWS VADDSWS_DEPR3
5067 [VEC_VADDUBM, vec_vaddubm, __builtin_vec_vaddubm]
5068 vsc __builtin_vec_vaddubm (vsc, vsc);
5069 VADDUBM VADDUBM_DEPR1
5070 vuc __builtin_vec_vaddubm (vsc, vuc);
5071 VADDUBM VADDUBM_DEPR2
5072 vuc __builtin_vec_vaddubm (vuc, vsc);
5073 VADDUBM VADDUBM_DEPR3
5074 vuc __builtin_vec_vaddubm (vuc, vuc);
5075 VADDUBM VADDUBM_DEPR4
5076 vsc __builtin_vec_vaddubm (vbc, vsc);
5077 VADDUBM VADDUBM_DEPR5
5078 vsc __builtin_vec_vaddubm (vsc, vbc);
5079 VADDUBM VADDUBM_DEPR6
5080 vuc __builtin_vec_vaddubm (vbc, vuc);
5081 VADDUBM VADDUBM_DEPR7
5082 vuc __builtin_vec_vaddubm (vuc, vbc);
5083 VADDUBM VADDUBM_DEPR8
5085 [VEC_VADDUBS, vec_vaddubs, __builtin_vec_vaddubs]
5086 vuc __builtin_vec_vaddubs (vsc, vuc);
5087 VADDUBS VADDUBS_DEPR1
5088 vuc __builtin_vec_vaddubs (vuc, vsc);
5089 VADDUBS VADDUBS_DEPR2
5090 vuc __builtin_vec_vaddubs (vuc, vuc);
5091 VADDUBS VADDUBS_DEPR3
5092 vuc __builtin_vec_vaddubs (vbc, vuc);
5093 VADDUBS VADDUBS_DEPR4
5094 vuc __builtin_vec_vaddubs (vuc, vbc);
5095 VADDUBS VADDUBS_DEPR5
5097 [VEC_VADDUDM, vec_vaddudm, __builtin_vec_vaddudm, _ARCH_PWR8]
5098 vsll __builtin_vec_vaddudm (vbll, vsll);
5099 VADDUDM VADDUDM_DEPR1
5100 vsll __builtin_vec_vaddudm (vsll, vbll);
5101 VADDUDM VADDUDM_DEPR2
5102 vsll __builtin_vec_vaddudm (vsll, vsll);
5103 VADDUDM VADDUDM_DEPR3
5104 vull __builtin_vec_vaddudm (vbll, vull);
5105 VADDUDM VADDUDM_DEPR4
5106 vull __builtin_vec_vaddudm (vull, vbll);
5107 VADDUDM VADDUDM_DEPR5
5108 vull __builtin_vec_vaddudm (vull, vull);
5109 VADDUDM VADDUDM_DEPR6
5111 [VEC_VADDUHM, vec_vadduhm, __builtin_vec_vadduhm]
5112 vss __builtin_vec_vadduhm (vss, vss);
5113 VADDUHM VADDUHM_DEPR1
5114 vus __builtin_vec_vadduhm (vss, vus);
5115 VADDUHM VADDUHM_DEPR2
5116 vus __builtin_vec_vadduhm (vus, vss);
5117 VADDUHM VADDUHM_DEPR3
5118 vus __builtin_vec_vadduhm (vus, vus);
5119 VADDUHM VADDUHM_DEPR4
5120 vss __builtin_vec_vadduhm (vbs, vss);
5121 VADDUHM VADDUHM_DEPR5
5122 vss __builtin_vec_vadduhm (vss, vbs);
5123 VADDUHM VADDUHM_DEPR6
5124 vus __builtin_vec_vadduhm (vbs, vus);
5125 VADDUHM VADDUHM_DEPR7
5126 vus __builtin_vec_vadduhm (vus, vbs);
5127 VADDUHM VADDUHM_DEPR8
5129 [VEC_VADDUHS, vec_vadduhs, __builtin_vec_vadduhs]
5130 vus __builtin_vec_vadduhs (vss, vus);
5131 VADDUHS VADDUHS_DEPR1
5132 vus __builtin_vec_vadduhs (vus, vss);
5133 VADDUHS VADDUHS_DEPR2
5134 vus __builtin_vec_vadduhs (vus, vus);
5135 VADDUHS VADDUHS_DEPR3
5136 vus __builtin_vec_vadduhs (vbs, vus);
5137 VADDUHS VADDUHS_DEPR4
5138 vus __builtin_vec_vadduhs (vus, vbs);
5139 VADDUHS VADDUHS_DEPR5
5141 [VEC_VADDUQM, vec_vadduqm, __builtin_vec_vadduqm, _ARCH_PWR8]
5142 vsq __builtin_vec_vadduqm (vsq, vsq);
5143 VADDUQM VADDUQM_DEPR1
5144 vuq __builtin_vec_vadduqm (vuq, vuq);
5145 VADDUQM VADDUQM_DEPR2
5147 [VEC_VADDUWM, vec_vadduwm, __builtin_vec_vadduwm]
5148 vsi __builtin_vec_vadduwm (vsi, vsi);
5149 VADDUWM VADDUWM_DEPR1
5150 vui __builtin_vec_vadduwm (vsi, vui);
5151 VADDUWM VADDUWM_DEPR2
5152 vui __builtin_vec_vadduwm (vui, vsi);
5153 VADDUWM VADDUWM_DEPR3
5154 vui __builtin_vec_vadduwm (vui, vui);
5155 VADDUWM VADDUWM_DEPR4
5156 vsi __builtin_vec_vadduwm (vbi, vsi);
5157 VADDUWM VADDUWM_DEPR5
5158 vsi __builtin_vec_vadduwm (vsi, vbi);
5159 VADDUWM VADDUWM_DEPR6
5160 vui __builtin_vec_vadduwm (vbi, vui);
5161 VADDUWM VADDUWM_DEPR7
5162 vui __builtin_vec_vadduwm (vui, vbi);
5163 VADDUWM VADDUWM_DEPR8
5165 [VEC_VADDUWS, vec_vadduws, __builtin_vec_vadduws]
5166 vui __builtin_vec_vadduws (vsi, vui);
5167 VADDUWS VADDUWS_DEPR1
5168 vui __builtin_vec_vadduws (vui, vsi);
5169 VADDUWS VADDUWS_DEPR2
5170 vui __builtin_vec_vadduws (vui, vui);
5171 VADDUWS VADDUWS_DEPR3
5172 vui __builtin_vec_vadduws (vbi, vui);
5173 VADDUWS VADDUWS_DEPR4
5174 vui __builtin_vec_vadduws (vui, vbi);
5175 VADDUWS VADDUWS_DEPR5
5177 [VEC_VADUB, vec_absdb, __builtin_vec_vadub]
5178 vuc __builtin_vec_vadub (vuc, vuc);
5181 [VEC_VADUH, vec_absdh, __builtin_vec_vaduh]
5182 vus __builtin_vec_vaduh (vus, vus);
5185 [VEC_VADUW, vec_absdw, __builtin_vec_vaduw]
5186 vui __builtin_vec_vaduw (vui, vui);
5189 [VEC_VAVGSB, vec_vavgsb, __builtin_vec_vavgsb]
5190 vsc __builtin_vec_vavgsb (vsc, vsc);
5193 [VEC_VAVGSH, vec_vavgsh, __builtin_vec_vavgsh]
5194 vss __builtin_vec_vavgsh (vss, vss);
5197 [VEC_VAVGSW, vec_vavgsw, __builtin_vec_vavgsw]
5198 vsi __builtin_vec_vavgsw (vsi, vsi);
5201 [VEC_VAVGUB, vec_vavgub, __builtin_vec_vavgub]
5202 vuc __builtin_vec_vavgub (vuc, vuc);
5205 [VEC_VAVGUH, vec_vavguh, __builtin_vec_vavguh]
5206 vus __builtin_vec_vavguh (vus, vus);
5209 [VEC_VAVGUW, vec_vavguw, __builtin_vec_vavguw]
5210 vui __builtin_vec_vavguw (vui, vui);
5213 [VEC_VBPERMQ, vec_vbpermq, __builtin_vec_vbpermq, _ARCH_PWR8]
5214 vull __builtin_vec_vbpermq (vull, vuc);
5215 VBPERMQ VBPERMQ_DEPR1
5216 vsll __builtin_vec_vbpermq (vsc, vsc);
5217 VBPERMQ VBPERMQ_DEPR2
5218 vull __builtin_vec_vbpermq (vuc, vuc);
5219 VBPERMQ VBPERMQ_DEPR3
5220 vull __builtin_vec_vbpermq (vuq, vuc);
5221 VBPERMQ VBPERMQ_DEPR4
5223 [VEC_VCFSX, vec_vcfsx, __builtin_vec_vcfsx]
5224 vf __builtin_vec_vcfsx (vsi, const int);
5227 [VEC_VCFUX, vec_vcfux, __builtin_vec_vcfux]
5228 vf __builtin_vec_vcfux (vui, const int);
5231 [VEC_VCLZB, vec_vclzb, __builtin_vec_vclzb, _ARCH_PWR8]
5232 vsc __builtin_vec_vclzb (vsc);
5234 vuc __builtin_vec_vclzb (vuc);
5237 [VEC_VCLZD, vec_vclzd, __builtin_vec_vclzd, _ARCH_PWR8]
5238 vsll __builtin_vec_vclzd (vsll);
5240 vull __builtin_vec_vclzd (vull);
5243 [VEC_VCLZH, vec_vclzh, __builtin_vec_vclzh, _ARCH_PWR8]
5244 vss __builtin_vec_vclzh (vss);
5246 vus __builtin_vec_vclzh (vus);
5249 [VEC_VCLZW, vec_vclzw, __builtin_vec_vclzw, _ARCH_PWR8]
5250 vsi __builtin_vec_vclzw (vsi);
5252 vui __builtin_vec_vclzw (vui);
5255 [VEC_VCMPEQFP, vec_vcmpeqfp, __builtin_vec_vcmpeqfp]
5256 vbi __builtin_vec_vcmpeqfp (vf, vf);
5257 VCMPEQFP VCMPEQFP_DEPR1
5259 [VEC_VCMPEQUB, vec_vcmpequb, __builtin_vec_vcmpequb]
5260 vbc __builtin_vec_vcmpequb (vsc, vsc);
5261 VCMPEQUB VCMPEQUB_DEPR1
5262 vbc __builtin_vec_vcmpequb (vuc, vuc);
5263 VCMPEQUB VCMPEQUB_DEPR2
5265 [VEC_VCMPEQUH, vec_vcmpequh, __builtin_vec_vcmpequh]
5266 vbs __builtin_vec_vcmpequh (vss, vss);
5267 VCMPEQUH VCMPEQUH_DEPR1
5268 vbs __builtin_vec_vcmpequh (vus, vus);
5269 VCMPEQUH VCMPEQUH_DEPR2
5271 [VEC_VCMPEQUW, vec_vcmpequw, __builtin_vec_vcmpequw]
5272 vbi __builtin_vec_vcmpequw (vsi, vsi);
5273 VCMPEQUW VCMPEQUW_DEPR1
5274 vbi __builtin_vec_vcmpequw (vui, vui);
5275 VCMPEQUW VCMPEQUW_DEPR2
5277 [VEC_VCMPGTFP, vec_vcmpgtfp, __builtin_vec_vcmpgtfp]
5278 vbi __builtin_vec_vcmpgtfp (vf, vf);
5279 VCMPGTFP VCMPGTFP_DEPR1
5281 [VEC_VCMPGTSB, vec_vcmpgtsb, __builtin_vec_vcmpgtsb]
5282 vbc __builtin_vec_vcmpgtsb (vsc, vsc);
5283 VCMPGTSB VCMPGTSB_DEPR1
5285 [VEC_VCMPGTSH, vec_vcmpgtsh, __builtin_vec_vcmpgtsh]
5286 vbs __builtin_vec_vcmpgtsh (vss, vss);
5287 VCMPGTSH VCMPGTSH_DEPR1
5289 [VEC_VCMPGTSW, vec_vcmpgtsw, __builtin_vec_vcmpgtsw]
5290 vbi __builtin_vec_vcmpgtsw (vsi, vsi);
5291 VCMPGTSW VCMPGTSW_DEPR1
5293 [VEC_VCMPGTUB, vec_vcmpgtub, __builtin_vec_vcmpgtub]
5294 vbc __builtin_vec_vcmpgtub (vuc, vuc);
5295 VCMPGTUB VCMPGTUB_DEPR1
5297 [VEC_VCMPGTUH, vec_vcmpgtuh, __builtin_vec_vcmpgtuh]
5298 vbs __builtin_vec_vcmpgtuh (vus, vus);
5299 VCMPGTUH VCMPGTUH_DEPR1
5301 [VEC_VCMPGTUW, vec_vcmpgtuw, __builtin_vec_vcmpgtuw]
5302 vbi __builtin_vec_vcmpgtuw (vui, vui);
5303 VCMPGTUW VCMPGTUW_DEPR1
5305 [VEC_VCTZB, vec_vctzb, __builtin_vec_vctzb, _ARCH_PWR9]
5306 vsc __builtin_vec_vctzb (vsc);
5308 vuc __builtin_vec_vctzb (vuc);
5311 [VEC_VCTZD, vec_vctzd, __builtin_vec_vctzd, _ARCH_PWR9]
5312 vsll __builtin_vec_vctzd (vsll);
5314 vull __builtin_vec_vctzd (vull);
5317 [VEC_VCTZH, vec_vctzh, __builtin_vec_vctzh, _ARCH_PWR9]
5318 vss __builtin_vec_vctzh (vss);
5320 vus __builtin_vec_vctzh (vus);
5323 [VEC_VCTZW, vec_vctzw, __builtin_vec_vctzw, _ARCH_PWR9]
5324 vsi __builtin_vec_vctzw (vsi);
5326 vui __builtin_vec_vctzw (vui);
5329 [VEC_VEEDP, vec_extract_exp_dp, __builtin_vec_extract_exp_dp, _ARCH_PWR9]
5330 vull __builtin_vec_extract_exp_dp (vd);
5333 [VEC_VEESP, vec_extract_exp_sp, __builtin_vec_extract_exp_sp, _ARCH_PWR9]
5334 vui __builtin_vec_extract_exp_sp (vf);
5337 [VEC_VESDP, vec_extract_sig_dp, __builtin_vec_extract_sig_dp, _ARCH_PWR9]
5338 vull __builtin_vec_extract_sig_dp (vd);
5341 [VEC_VESSP, vec_extract_sig_sp, __builtin_vec_extract_sig_sp, _ARCH_PWR9]
5342 vui __builtin_vec_extract_sig_sp (vf);
5345 [VEC_VIEDP, vec_insert_exp_dp, __builtin_vec_insert_exp_dp, _ARCH_PWR9]
5346 vd __builtin_vec_insert_exp_dp (vd, vull);
5348 vd __builtin_vec_insert_exp_dp (vull, vull);
5351 [VEC_VIESP, vec_insert_exp_sp, __builtin_vec_insert_exp_sp, _ARCH_PWR9]
5352 vf __builtin_vec_insert_exp_sp (vf, vui);
5354 vf __builtin_vec_insert_exp_sp (vui, vui);
5357 [VEC_VMAXFP, vec_vmaxfp, __builtin_vec_vmaxfp]
5358 vf __builtin_vec_vmaxfp (vf, vf);
5361 [VEC_VMAXSB, vec_vmaxsb, __builtin_vec_vmaxsb]
5362 vsc __builtin_vec_vmaxsb (vsc, vsc);
5364 vsc __builtin_vec_vmaxsb (vbc, vsc);
5366 vsc __builtin_vec_vmaxsb (vsc, vbc);
5369 [VEC_VMAXSD, vec_vmaxsd, __builtin_vec_vmaxsd]
5370 vsll __builtin_vec_vmaxsd (vsll, vsll);
5372 vsll __builtin_vec_vmaxsd (vbll, vsll);
5374 vsll __builtin_vec_vmaxsd (vsll, vbll);
5377 [VEC_VMAXSH, vec_vmaxsh, __builtin_vec_vmaxsh]
5378 vss __builtin_vec_vmaxsh (vss, vss);
5380 vss __builtin_vec_vmaxsh (vbs, vss);
5382 vss __builtin_vec_vmaxsh (vss, vbs);
5385 [VEC_VMAXSW, vec_vmaxsw, __builtin_vec_vmaxsw]
5386 vsi __builtin_vec_vmaxsw (vsi, vsi);
5388 vsi __builtin_vec_vmaxsw (vbi, vsi);
5390 vsi __builtin_vec_vmaxsw (vsi, vbi);
5393 [VEC_VMAXUB, vec_vmaxub, __builtin_vec_vmaxub]
5394 vuc __builtin_vec_vmaxub (vsc, vuc);
5396 vuc __builtin_vec_vmaxub (vuc, vsc);
5398 vuc __builtin_vec_vmaxub (vuc, vuc);
5400 vuc __builtin_vec_vmaxub (vbc, vuc);
5402 vuc __builtin_vec_vmaxub (vuc, vbc);
5405 [VEC_VMAXUD, vec_vmaxud, __builtin_vec_vmaxud]
5406 vull __builtin_vec_vmaxud (vull, vull);
5408 vull __builtin_vec_vmaxud (vbll, vull);
5410 vull __builtin_vec_vmaxud (vull, vbll);
5413 [VEC_VMAXUH, vec_vmaxuh, __builtin_vec_vmaxuh]
5414 vus __builtin_vec_vmaxuh (vss, vus);
5416 vus __builtin_vec_vmaxuh (vus, vss);
5418 vus __builtin_vec_vmaxuh (vus, vus);
5420 vus __builtin_vec_vmaxuh (vbs, vus);
5422 vus __builtin_vec_vmaxuh (vus, vbs);
5425 [VEC_VMAXUW, vec_vmaxuw, __builtin_vec_vmaxuw]
5426 vui __builtin_vec_vmaxuw (vsi, vui);
5428 vui __builtin_vec_vmaxuw (vui, vsi);
5430 vui __builtin_vec_vmaxuw (vui, vui);
5432 vui __builtin_vec_vmaxuw (vbi, vui);
5434 vui __builtin_vec_vmaxuw (vui, vbi);
5437 [VEC_VMINFP, vec_vminfp, __builtin_vec_vminfp]
5438 vf __builtin_vec_vminfp (vf, vf);
5441 [VEC_VMINSB, vec_vminsb, __builtin_vec_vminsb]
5442 vsc __builtin_vec_vminsb (vsc, vsc);
5444 vsc __builtin_vec_vminsb (vbc, vsc);
5446 vsc __builtin_vec_vminsb (vsc, vbc);
5449 [VEC_VMINSD, vec_vminsd, __builtin_vec_vminsd]
5450 vsll __builtin_vec_vminsd (vsll, vsll);
5452 vsll __builtin_vec_vminsd (vbll, vsll);
5454 vsll __builtin_vec_vminsd (vsll, vbll);
5457 [VEC_VMINSH, vec_vminsh, __builtin_vec_vminsh]
5458 vss __builtin_vec_vminsh (vss, vss);
5460 vss __builtin_vec_vminsh (vbs, vss);
5462 vss __builtin_vec_vminsh (vss, vbs);
5465 [VEC_VMINSW, vec_vminsw, __builtin_vec_vminsw]
5466 vsi __builtin_vec_vminsw (vsi, vsi);
5468 vsi __builtin_vec_vminsw (vbi, vsi);
5470 vsi __builtin_vec_vminsw (vsi, vbi);
5473 [VEC_VMINUB, vec_vminub, __builtin_vec_vminub]
5474 vuc __builtin_vec_vminub (vsc, vuc);
5476 vuc __builtin_vec_vminub (vuc, vsc);
5478 vuc __builtin_vec_vminub (vuc, vuc);
5480 vuc __builtin_vec_vminub (vbc, vuc);
5482 vuc __builtin_vec_vminub (vuc, vbc);
5485 [VEC_VMINUD, vec_vminud, __builtin_vec_vminud]
5486 vull __builtin_vec_vminud (vull, vull);
5488 vull __builtin_vec_vminud (vbll, vull);
5490 vull __builtin_vec_vminud (vull, vbll);
5493 [VEC_VMINUH, vec_vminuh, __builtin_vec_vminuh]
5494 vus __builtin_vec_vminuh (vss, vus);
5496 vus __builtin_vec_vminuh (vus, vss);
5498 vus __builtin_vec_vminuh (vus, vus);
5500 vus __builtin_vec_vminuh (vbs, vus);
5502 vus __builtin_vec_vminuh (vus, vbs);
5505 [VEC_VMINUW, vec_vminuw, __builtin_vec_vminuw]
5506 vui __builtin_vec_vminuw (vsi, vui);
5508 vui __builtin_vec_vminuw (vui, vsi);
5510 vui __builtin_vec_vminuw (vui, vui);
5512 vui __builtin_vec_vminuw (vbi, vui);
5514 vui __builtin_vec_vminuw (vui, vbi);
5517 [VEC_VMRGHB, vec_vmrghb, __builtin_vec_vmrghb]
5518 vsc __builtin_vec_vmrghb (vsc, vsc);
5520 vuc __builtin_vec_vmrghb (vuc, vuc);
5522 vbc __builtin_vec_vmrghb (vbc, vbc);
5525 [VEC_VMRGHH, vec_vmrghh, __builtin_vec_vmrghh]
5526 vss __builtin_vec_vmrghh (vss, vss);
5528 vus __builtin_vec_vmrghh (vus, vus);
5530 vbs __builtin_vec_vmrghh (vbs, vbs);
5532 vp __builtin_vec_vmrghh (vp, vp);
5535 [VEC_VMRGHW, vec_vmrghw, __builtin_vec_vmrghw]
5536 vf __builtin_vec_vmrghw (vf, vf);
5538 vsi __builtin_vec_vmrghw (vsi, vsi);
5540 vui __builtin_vec_vmrghw (vui, vui);
5542 vbi __builtin_vec_vmrghw (vbi, vbi);
5545 [VEC_VMRGLB, vec_vmrglb, __builtin_vec_vmrglb]
5546 vsc __builtin_vec_vmrglb (vsc, vsc);
5548 vuc __builtin_vec_vmrglb (vuc, vuc);
5550 vbc __builtin_vec_vmrglb (vbc, vbc);
5553 [VEC_VMRGLH, vec_vmrglh, __builtin_vec_vmrglh]
5554 vss __builtin_vec_vmrglh (vss, vss);
5556 vus __builtin_vec_vmrglh (vus, vus);
5558 vbs __builtin_vec_vmrglh (vbs, vbs);
5560 vp __builtin_vec_vmrglh (vp, vp);
5563 [VEC_VMRGLW, vec_vmrglw, __builtin_vec_vmrglw]
5564 vf __builtin_vec_vmrglw (vf, vf);
5566 vsi __builtin_vec_vmrglw (vsi, vsi);
5568 vui __builtin_vec_vmrglw (vui, vui);
5570 vbi __builtin_vec_vmrglw (vbi, vbi);
5573 [VEC_VMSUMMBM, vec_vmsummbm, __builtin_vec_vmsummbm]
5574 vsi __builtin_vec_vmsummbm (vsc, vuc, vsi);
5575 VMSUMMBM VMSUMMBM_DEPR1
5577 [VEC_VMSUMSHM, vec_vmsumshm, __builtin_vec_vmsumshm]
5578 vsi __builtin_vec_vmsumshm (vss, vss, vsi);
5579 VMSUMSHM VMSUMSHM_DEPR1
5581 [VEC_VMSUMSHS, vec_vmsumshs, __builtin_vec_vmsumshs]
5582 vsi __builtin_vec_vmsumshs (vss, vss, vsi);
5583 VMSUMSHS VMSUMSHS_DEPR1
5585 [VEC_VMSUMUBM, vec_vmsumubm, __builtin_vec_vmsumubm]
5586 vui __builtin_vec_vmsumubm (vuc, vuc, vui);
5587 VMSUMUBM VMSUMUBM_DEPR1
5589 [VEC_VMSUMUDM, vec_vmsumudm, __builtin_vec_vmsumudm]
5590 vuq __builtin_vec_vmsumudm (vull, vull, vuq);
5591 VMSUMUDM VMSUMUDM_DEPR1
5593 [VEC_VMSUMUHM, vec_vmsumuhm, __builtin_vec_vmsumuhm]
5594 vui __builtin_vec_vmsumuhm (vus, vus, vui);
5595 VMSUMUHM VMSUMUHM_DEPR1
5597 [VEC_VMSUMUHS, vec_vmsumuhs, __builtin_vec_vmsumuhs]
5598 vui __builtin_vec_vmsumuhs (vus, vus, vui);
5599 VMSUMUHS VMSUMUHS_DEPR1
5601 [VEC_VMULESB, vec_vmulesb, __builtin_vec_vmulesb]
5602 vss __builtin_vec_vmulesb (vsc, vsc);
5603 VMULESB VMULESB_DEPR1
5605 [VEC_VMULESH, vec_vmulesh, __builtin_vec_vmulesh]
5606 vsi __builtin_vec_vmulesh (vss, vss);
5607 VMULESH VMULESH_DEPR1
5609 [VEC_VMULESW, SKIP, __builtin_vec_vmulesw]
5610 vsll __builtin_vec_vmulesw (vsi, vsi);
5611 VMULESW VMULESW_DEPR1
5613 [VEC_VMULEUB, vec_vmuleub, __builtin_vec_vmuleub]
5614 vus __builtin_vec_vmuleub (vuc, vuc);
5615 VMULEUB VMULEUB_DEPR1
5617 [VEC_VMULEUH, vec_vmuleuh, __builtin_vec_vmuleuh]
5618 vui __builtin_vec_vmuleuh (vus, vus);
5619 VMULEUH VMULEUH_DEPR1
5621 [VEC_VMULEUW, SKIP, __builtin_vec_vmuleuw]
5622 vull __builtin_vec_vmuleuw (vui, vui);
5623 VMULEUW VMULEUW_DEPR1
5625 [VEC_VMULOSB, vec_vmulosb, __builtin_vec_vmulosb]
5626 vss __builtin_vec_vmulosb (vsc, vsc);
5627 VMULOSB VMULOSB_DEPR1
5629 [VEC_VMULOSH, vec_vmulosh, __builtin_vec_vmulosh]
5630 vsi __builtin_vec_vmulosh (vss, vss);
5631 VMULOSH VMULOSH_DEPR1
5633 [VEC_VMULOSW, SKIP, __builtin_vec_vmulosw]
5634 vsll __builtin_vec_vmulosw (vsi, vsi);
5635 VMULOSW VMULOSW_DEPR1
5637 [VEC_VMULOUB, vec_vmuloub, __builtin_vec_vmuloub]
5638 vus __builtin_vec_vmuloub (vuc, vuc);
5639 VMULOUB VMULOUB_DEPR1
5641 [VEC_VMULOUH, vec_vmulouh, __builtin_vec_vmulouh]
5642 vui __builtin_vec_vmulouh (vus, vus);
5643 VMULOUH VMULOUH_DEPR1
5645 [VEC_VMULOUW, SKIP, __builtin_vec_vmulouw]
5646 vull __builtin_vec_vmulouw (vui, vui);
5647 VMULOUW VMULOUW_DEPR1
5649 [VEC_VPKSDSS, vec_vpksdss, __builtin_vec_vpksdss, _ARCH_PWR8]
5650 vsi __builtin_vec_vpksdss (vsll, vsll);
5651 VPKSDSS VPKSDSS_DEPR1
5653 [VEC_VPKSDUS, vec_vpksdus, __builtin_vec_vpksdus, _ARCH_PWR8]
5654 vui __builtin_vec_vpksdus (vsll, vsll);
5655 VPKSDUS VPKSDUS_DEPR1
5657 [VEC_VPKSHSS, vec_vpkshss, __builtin_vec_vpkshss]
5658 vsc __builtin_vec_vpkshss (vss, vss);
5659 VPKSHSS VPKSHSS_DEPR1
5661 [VEC_VPKSHUS, vec_vpkshus, __builtin_vec_vpkshus]
5662 vuc __builtin_vec_vpkshus (vss, vss);
5663 VPKSHUS VPKSHUS_DEPR1
5665 [VEC_VPKSWSS, vec_vpkswss, __builtin_vec_vpkswss]
5666 vss __builtin_vec_vpkswss (vsi, vsi);
5667 VPKSWSS VPKSWSS_DEPR1
5669 [VEC_VPKSWUS, vec_vpkswus, __builtin_vec_vpkswus]
5670 vus __builtin_vec_vpkswus (vsi, vsi);
5671 VPKSWUS VPKSWUS_DEPR1
5673 [VEC_VPKUDUM, vec_vpkudum, __builtin_vec_vpkudum, _ARCH_PWR8]
5674 vsi __builtin_vec_vpkudum (vsll, vsll);
5675 VPKUDUM VPKUDUM_DEPR1
5676 vui __builtin_vec_vpkudum (vull, vull);
5677 VPKUDUM VPKUDUM_DEPR2
5678 vbi __builtin_vec_vpkudum (vbll, vbll);
5679 VPKUDUM VPKUDUM_DEPR3
5681 [VEC_VPKUDUS, vec_vpkudus, __builtin_vec_vpkudus, _ARCH_PWR8]
5682 vui __builtin_vec_vpkudus (vull, vull);
5683 VPKUDUS VPKUDUS_DEPR1
5685 [VEC_VPKUHUM, vec_vpkuhum, __builtin_vec_vpkuhum]
5686 vsc __builtin_vec_vpkuhum (vss, vss);
5687 VPKUHUM VPKUHUM_DEPR1
5688 vuc __builtin_vec_vpkuhum (vus, vus);
5689 VPKUHUM VPKUHUM_DEPR2
5690 vbc __builtin_vec_vpkuhum (vbs, vbs);
5691 VPKUHUM VPKUHUM_DEPR3
5693 [VEC_VPKUHUS, vec_vpkuhus, __builtin_vec_vpkuhus]
5694 vuc __builtin_vec_vpkuhus (vus, vus);
5695 VPKUHUS VPKUHUS_DEPR1
5697 [VEC_VPKUWUM, vec_vpkuwum, __builtin_vec_vpkuwum]
5698 vss __builtin_vec_vpkuwum (vsi, vsi);
5699 VPKUWUM VPKUWUM_DEPR1
5700 vus __builtin_vec_vpkuwum (vui, vui);
5701 VPKUWUM VPKUWUM_DEPR2
5702 vbs __builtin_vec_vpkuwum (vbi, vbi);
5703 VPKUWUM VPKUWUM_DEPR3
5705 [VEC_VPKUWUS, vec_vpkuwus, __builtin_vec_vpkuwus]
5706 vus __builtin_vec_vpkuwus (vui, vui);
5707 VPKUWUS VPKUWUS_DEPR1
5709 [VEC_VPOPCNT, vec_vpopcnt, __builtin_vec_vpopcnt, _ARCH_PWR8]
5710 vsc __builtin_vec_vpopcnt (vsc);
5711 VPOPCNTB VPOPCNT_DEPR1
5712 vuc __builtin_vec_vpopcnt (vuc);
5713 VPOPCNTB VPOPCNT_DEPR2
5714 vss __builtin_vec_vpopcnt (vss);
5715 VPOPCNTH VPOPCNT_DEPR3
5716 vus __builtin_vec_vpopcnt (vus);
5717 VPOPCNTH VPOPCNT_DEPR4
5718 vsi __builtin_vec_vpopcnt (vsi);
5719 VPOPCNTW VPOPCNT_DEPR5
5720 vui __builtin_vec_vpopcnt (vui);
5721 VPOPCNTW VPOPCNT_DEPR6
5722 vsll __builtin_vec_vpopcnt (vsll);
5723 VPOPCNTD VPOPCNT_DEPR7
5724 vull __builtin_vec_vpopcnt (vull);
5725 VPOPCNTD VPOPCNT_DEPR8
5727 [VEC_VPOPCNTB, vec_vpopcntb, __builtin_vec_vpopcntb, _ARCH_PWR8]
5728 vsc __builtin_vec_vpopcntb (vsc);
5729 VPOPCNTB VPOPCNTB_DEPR1
5730 vuc __builtin_vec_vpopcntb (vuc);
5731 VPOPCNTB VPOPCNTB_DEPR2
5733 [VEC_VPOPCNTD, vec_vpopcntd, __builtin_vec_vpopcntd, _ARCH_PWR8]
5734 vsll __builtin_vec_vpopcntd (vsll);
5735 VPOPCNTD VPOPCNTD_DEPR1
5736 vull __builtin_vec_vpopcntd (vull);
5737 VPOPCNTD VPOPCNTD_DEPR2
5739 [VEC_VPOPCNTH, vec_vpopcnth, __builtin_vec_vpopcnth, _ARCH_PWR8]
5740 vss __builtin_vec_vpopcnth (vss);
5741 VPOPCNTH VPOPCNTH_DEPR1
5742 vus __builtin_vec_vpopcnth (vus);
5743 VPOPCNTH VPOPCNTH_DEPR2
5745 [VEC_VPOPCNTW, vec_vpopcntw, __builtin_vec_vpopcntw, _ARCH_PWR8]
5746 vsi __builtin_vec_vpopcntw (vsi);
5747 VPOPCNTW VPOPCNTW_DEPR1
5748 vui __builtin_vec_vpopcntw (vui);
5749 VPOPCNTW VPOPCNTW_DEPR2
5751 [VEC_VPRTYBD, vec_vprtybd, __builtin_vec_vprtybd, _ARCH_PWR9]
5752 vsll __builtin_vec_vprtybd (vsll);
5753 VPRTYBD VPRTYBD_DEPR1
5754 vull __builtin_vec_vprtybd (vull);
5755 VPRTYBD VPRTYBD_DEPR2
5757 [VEC_VPRTYBQ, vec_vprtybq, __builtin_vec_vprtybq, _ARCH_PPC64_PWR9]
5758 vsq __builtin_vec_vprtybq (vsq);
5759 VPRTYBQ VPRTYBQ_DEPR1
5760 vuq __builtin_vec_vprtybq (vuq);
5761 VPRTYBQ VPRTYBQ_DEPR2
5762 signed __int128 __builtin_vec_vprtybq (signed __int128);
5763 VPRTYBQ VPRTYBQ_DEPR3
5764 unsigned __int128 __builtin_vec_vprtybq (unsigned __int128);
5765 VPRTYBQ VPRTYBQ_DEPR4
5767 [VEC_VPRTYBW, vec_vprtybw, __builtin_vec_vprtybw, _ARCH_PWR9]
5768 vsi __builtin_vec_vprtybw (vsi);
5769 VPRTYBW VPRTYBW_DEPR1
5770 vui __builtin_vec_vprtybw (vui);
5771 VPRTYBW VPRTYBW_DEPR2
5773 [VEC_VRLB, vec_vrlb, __builtin_vec_vrlb]
5774 vsc __builtin_vec_vrlb (vsc, vuc);
5776 vuc __builtin_vec_vrlb (vuc, vuc);
5779 [VEC_VRLD, SKIP, __builtin_vec_vrld, _ARCH_PWR8]
5780 vsll __builtin_vec_vrld (vsll, vull);
5782 vull __builtin_vec_vrld (vull, vull);
5785 [VEC_VRLH, vec_vrlh, __builtin_vec_vrlh]
5786 vss __builtin_vec_vrlh (vss, vus);
5788 vus __builtin_vec_vrlh (vus, vus);
5791 [VEC_VRLW, vec_vrlw, __builtin_vec_vrlw]
5792 vsi __builtin_vec_vrlw (vsi, vui);
5794 vui __builtin_vec_vrlw (vui, vui);
5797 [VEC_VSLB, vec_vslb, __builtin_vec_vslb]
5798 vsc __builtin_vec_vslb (vsc, vuc);
5800 vuc __builtin_vec_vslb (vuc, vuc);
5803 [VEC_VSLD, SKIP, __builtin_vec_vsld, _ARCH_PWR8]
5804 vsll __builtin_vec_vsld (vsll, vull);
5806 vull __builtin_vec_vsld (vull, vull);
5809 [VEC_VSLH, vec_vslh, __builtin_vec_vslh]
5810 vss __builtin_vec_vslh (vss, vus);
5812 vus __builtin_vec_vslh (vus, vus);
5815 [VEC_VSLW, vec_vslw, __builtin_vec_vslw]
5816 vsi __builtin_vec_vslw (vsi, vui);
5818 vui __builtin_vec_vslw (vui, vui);
5821 [VEC_VSPLTB, vec_vspltb, __builtin_vec_vspltb]
5822 vsc __builtin_vec_vspltb (vsc, const int);
5824 vuc __builtin_vec_vspltb (vuc, const int);
5826 vbc __builtin_vec_vspltb (vbc, const int);
5829 [VEC_VSPLTH, vec_vsplth, __builtin_vec_vsplth]
5830 vss __builtin_vec_vsplth (vss, const int);
5832 vus __builtin_vec_vsplth (vus, const int);
5834 vbs __builtin_vec_vsplth (vbs, const int);
5836 vp __builtin_vec_vsplth (vp, const int);
5839 [VEC_VSPLTW, vec_vspltw, __builtin_vec_vspltw]
5840 vsi __builtin_vec_vspltw (vsi, const int);
5842 vui __builtin_vec_vspltw (vui, const int);
5844 vbi __builtin_vec_vspltw (vbi, const int);
5846 vf __builtin_vec_vspltw (vf, const int);
5849 [VEC_VSRAB, vec_vsrab, __builtin_vec_vsrab]
5850 vsc __builtin_vec_vsrab (vsc, vuc);
5852 vuc __builtin_vec_vsrab (vuc, vuc);
5855 [VEC_VSRAD, SKIP, __builtin_vec_vsrad, _ARCH_PWR8]
5856 vsll __builtin_vec_vsrad (vsll, vull);
5858 vull __builtin_vec_vsrad (vull, vull);
5861 [VEC_VSRAH, vec_vsrah, __builtin_vec_vsrah]
5862 vss __builtin_vec_vsrah (vss, vus);
5864 vus __builtin_vec_vsrah (vus, vus);
5867 [VEC_VSRAW, vec_vsraw, __builtin_vec_vsraw]
5868 vsi __builtin_vec_vsraw (vsi, vui);
5870 vui __builtin_vec_vsraw (vui, vui);
5873 [VEC_VSRB, vec_vsrb, __builtin_vec_vsrb]
5874 vsc __builtin_vec_vsrb (vsc, vuc);
5876 vuc __builtin_vec_vsrb (vuc, vuc);
5879 [VEC_VSRD, SKIP, __builtin_vec_vsrd, _ARCH_PWR8]
5880 vsll __builtin_vec_vsrd (vsll, vull);
5882 vull __builtin_vec_vsrd (vull, vull);
5885 [VEC_VSRH, vec_vsrh, __builtin_vec_vsrh]
5886 vss __builtin_vec_vsrh (vss, vus);
5888 vus __builtin_vec_vsrh (vus, vus);
5891 [VEC_VSRW, vec_vsrw, __builtin_vec_vsrw]
5892 vsi __builtin_vec_vsrw (vsi, vui);
5894 vui __builtin_vec_vsrw (vui, vui);
5897 [VEC_VSTDCDP, scalar_test_data_class_dp, __builtin_vec_scalar_test_data_class_dp, _ARCH_PWR9]
5898 unsigned int __builtin_vec_scalar_test_data_class_dp (double, const int);
5899 VSTDCDP VSTDCDP_DEPR1
5901 [VEC_VSTDCNDP, scalar_test_neg_dp, __builtin_vec_scalar_test_neg_dp, _ARCH_PWR9]
5902 unsigned int __builtin_vec_scalar_test_neg_dp (double);
5903 VSTDCNDP VSTDCNDP_DEPR1
5905 [VEC_VSTDCNQP, scalar_test_neg_qp, __builtin_vec_scalar_test_neg_qp, _ARCH_PWR9]
5906 unsigned int __builtin_vec_scalar_test_neg_qp (_Float128);
5907 VSTDCNQP VSTDCNQP_DEPR1
5909 [VEC_VSTDCNSP, scalar_test_neg_sp, __builtin_vec_scalar_test_neg_sp, _ARCH_PWR9]
5910 unsigned int __builtin_vec_scalar_test_neg_sp (float);
5911 VSTDCNSP VSTDCNSP_DEPR1
5913 [VEC_VSTDCQP, scalar_test_data_class_qp, __builtin_vec_scalar_test_data_class_qp, _ARCH_PWR9]
5914 unsigned int __builtin_vec_scalar_test_data_class_qp (_Float128, const int);
5915 VSTDCQP VSTDCQP_DEPR1
5917 [VEC_VSTDCSP, scalar_test_data_class_sp, __builtin_vec_scalar_test_data_class_sp, _ARCH_PWR9]
5918 unsigned int __builtin_vec_scalar_test_data_class_sp (float, const int);
5919 VSTDCSP VSTDCSP_DEPR1
5921 [VEC_VSUBCUQ, vec_vsubcuqP, __builtin_vec_vsubcuq]
5922 vsq __builtin_vec_vsubcuq (vsq, vsq);
5923 VSUBCUQ VSUBCUQ_DEPR1
5924 vuq __builtin_vec_vsubcuq (vuq, vuq);
5925 VSUBCUQ VSUBCUQ_DEPR2
5927 [VEC_VSUBECUQ, vec_vsubecuq, __builtin_vec_vsubecuq, ARCH_PWR8]
5928 vsq __builtin_vec_vsubecuq (vsq, vsq, vsq);
5929 VSUBECUQ VSUBECUQ_DEPR1
5930 vuq __builtin_vec_vsubecuq (vuq, vuq, vuq);
5931 VSUBECUQ VSUBECUQ_DEPR2
5933 [VEC_VSUBEUQM, vec_vsubeuqm, __builtin_vec_vsubeuqm, _ARCH_PWR8]
5934 vsq __builtin_vec_vsubeuqm (vsq, vsq, vsq);
5935 VSUBEUQM VSUBEUQM_DEPR1
5936 vuq __builtin_vec_vsubeuqm (vuq, vuq, vuq);
5937 VSUBEUQM VSUBEUQM_DEPR2
5939 [VEC_VSUBFP, vec_vsubfp, __builtin_vec_vsubfp]
5940 vf __builtin_vec_vsubfp (vf, vf);
5943 [VEC_VSUBSBS, vec_vsubsbs, __builtin_vec_vsubsbs]
5944 vsc __builtin_vec_vsubsbs (vsc, vsc);
5945 VSUBSBS VSUBSBS_DEPR1
5946 vsc __builtin_vec_vsubsbs (vbc, vsc);
5947 VSUBSBS VSUBSBS_DEPR2
5948 vsc __builtin_vec_vsubsbs (vsc, vbc);
5949 VSUBSBS VSUBSBS_DEPR3
5951 [VEC_VSUBSHS, vec_vsubshs, __builtin_vec_vsubshs]
5952 vss __builtin_vec_vsubshs (vss, vss);
5953 VSUBSHS VSUBSHS_DEPR1
5954 vss __builtin_vec_vsubshs (vbs, vss);
5955 VSUBSHS VSUBSHS_DEPR2
5956 vss __builtin_vec_vsubshs (vss, vbs);
5957 VSUBSHS VSUBSHS_DEPR3
5959 [VEC_VSUBSWS, vec_vsubsws, __builtin_vec_vsubsws]
5960 vsi __builtin_vec_vsubsws (vsi, vsi);
5961 VSUBSWS VSUBSWS_DEPR1
5962 vsi __builtin_vec_vsubsws (vbi, vsi);
5963 VSUBSWS VSUBSWS_DEPR2
5964 vsi __builtin_vec_vsubsws (vsi, vbi);
5965 VSUBSWS VSUBSWS_DEPR3
5967 [VEC_VSUBUBM, vec_vsububm, __builtin_vec_vsububm]
5968 vsc __builtin_vec_vsububm (vsc, vsc);
5969 VSUBUBM VSUBUBM_DEPR1
5970 vuc __builtin_vec_vsububm (vsc, vuc);
5971 VSUBUBM VSUBUBM_DEPR2
5972 vuc __builtin_vec_vsububm (vuc, vsc);
5973 VSUBUBM VSUBUBM_DEPR3
5974 vuc __builtin_vec_vsububm (vuc, vuc);
5975 VSUBUBM VSUBUBM_DEPR4
5976 vsc __builtin_vec_vsububm (vbc, vsc);
5977 VSUBUBM VSUBUBM_DEPR5
5978 vsc __builtin_vec_vsububm (vsc, vbc);
5979 VSUBUBM VSUBUBM_DEPR6
5980 vuc __builtin_vec_vsububm (vbc, vuc);
5981 VSUBUBM VSUBUBM_DEPR7
5982 vuc __builtin_vec_vsububm (vuc, vbc);
5983 VSUBUBM VSUBUBM_DEPR8
5985 [VEC_VSUBUBS, vec_vsububs, __builtin_vec_vsububs]
5986 vsc __builtin_vec_vsububs (vsc, vsc);
5987 VSUBUBS VSUBUBS_DEPR1
5988 vsc __builtin_vec_vsububs (vbc, vsc);
5989 VSUBUBS VSUBUBS_DEPR2
5990 vsc __builtin_vec_vsububs (vsc, vbc);
5991 VSUBUBS VSUBUBS_DEPR3
5992 vuc __builtin_vec_vsububs (vsc, vuc);
5993 VSUBUBS VSUBUBS_DEPR4
5994 vuc __builtin_vec_vsububs (vuc, vsc);
5995 VSUBUBS VSUBUBS_DEPR5
5996 vuc __builtin_vec_vsububs (vuc, vuc);
5997 VSUBUBS VSUBUBS_DEPR6
5998 vuc __builtin_vec_vsububs (vbc, vuc);
5999 VSUBUBS VSUBUBS_DEPR7
6000 vuc __builtin_vec_vsububs (vuc, vbc);
6001 VSUBUBS VSUBUBS_DEPR8
6003 [VEC_VSUBUDM, vec_vsubudm, __builtin_vec_vsubudm, _ARCH_PWR8]
6004 vsll __builtin_vec_vsubudm (vbll, vsll);
6005 VSUBUDM VSUBUDM_DEPR1
6006 vsll __builtin_vec_vsubudm (vsll, vbll);
6007 VSUBUDM VSUBUDM_DEPR2
6008 vsll __builtin_vec_vsubudm (vsll, vsll);
6009 VSUBUDM VSUBUDM_DEPR3
6010 vull __builtin_vec_vsubudm (vbll, vull);
6011 VSUBUDM VSUBUDM_DEPR4
6012 vull __builtin_vec_vsubudm (vull, vbll);
6013 VSUBUDM VSUBUDM_DEPR5
6014 vull __builtin_vec_vsubudm (vull, vull);
6015 VSUBUDM VSUBUDM_DEPR6
6017 [VEC_VSUBUHM, vec_vsubuhm, __builtin_vec_vsubuhm]
6018 vss __builtin_vec_vsubuhm (vss, vss);
6019 VSUBUHM VUSBUHM_DEPR1
6020 vus __builtin_vec_vsubuhm (vss, vus);
6021 VSUBUHM VUSBUHM_DEPR2
6022 vus __builtin_vec_vsubuhm (vus, vss);
6023 VSUBUHM VUSBUHM_DEPR3
6024 vus __builtin_vec_vsubuhm (vus, vus);
6025 VSUBUHM VUSBUHM_DEPR4
6026 vss __builtin_vec_vsubuhm (vbs, vss);
6027 VSUBUHM VUSBUHM_DEPR5
6028 vss __builtin_vec_vsubuhm (vss, vbs);
6029 VSUBUHM VUSBUHM_DEPR6
6030 vus __builtin_vec_vsubuhm (vbs, vus);
6031 VSUBUHM VUSBUHM_DEPR7
6032 vus __builtin_vec_vsubuhm (vus, vbs);
6033 VSUBUHM VUSBUHM_DEPR8
6035 [VEC_VSUBUHS, vec_vsubuhs, __builtin_vec_vsubuhs]
6036 vus __builtin_vec_vsubuhs (vss, vus);
6037 VSUBUHS VSUBUHS_DEPR1
6038 vus __builtin_vec_vsubuhs (vus, vss);
6039 VSUBUHS VSUBUHS_DEPR2
6040 vus __builtin_vec_vsubuhs (vus, vus);
6041 VSUBUHS VSUBUHS_DEPR3
6042 vus __builtin_vec_vsubuhs (vbs, vus);
6043 VSUBUHS VSUBUHS_DEPR4
6044 vus __builtin_vec_vsubuhs (vus, vbs);
6045 VSUBUHS VSUBUHS_DEPR5
6047 [VEC_VSUBUQM, vec_vsubuqm, __builtin_vec_vsubuqm, _ARCH_PWR8]
6048 vsq __builtin_vec_vsubuqm (vsq, vsq);
6049 VSUBUQM VSUBUQM_DEPR1
6050 vuq __builtin_vec_vsubuqm (vuq, vuq);
6051 VSUBUQM VSUBUQM_DEPR2
6053 [VEC_VSUBUWM, vec_vsubuwm, __builtin_vec_vsubuwm]
6054 vsi __builtin_vec_vsubuwm (vbi, vsi);
6055 VSUBUWM VSUBUWM_DEPR1
6056 vsi __builtin_vec_vsubuwm (vsi, vbi);
6057 VSUBUWM VSUBUWM_DEPR2
6058 vui __builtin_vec_vsubuwm (vbi, vui);
6059 VSUBUWM VSUBUWM_DEPR3
6060 vui __builtin_vec_vsubuwm (vui, vbi);
6061 VSUBUWM VSUBUWM_DEPR4
6062 vsi __builtin_vec_vsubuwm (vsi, vsi);
6063 VSUBUWM VSUBUWM_DEPR5
6064 vui __builtin_vec_vsubuwm (vsi, vui);
6065 VSUBUWM VSUBUWM_DEPR6
6066 vui __builtin_vec_vsubuwm (vui, vsi);
6067 VSUBUWM VSUBUWM_DEPR7
6068 vui __builtin_vec_vsubuwm (vui, vui);
6069 VSUBUWM VSUBUWM_DEPR8
6071 [VEC_VSUBUWS, vec_vsubuws, __builtin_vec_vsubuws]
6072 vui __builtin_vec_vsubuws (vsi, vui);
6073 VSUBUWS VSUBUWS_DEPR1
6074 vui __builtin_vec_vsubuws (vui, vsi);
6075 VSUBUWS VSUBUWS_DEPR2
6076 vui __builtin_vec_vsubuws (vui, vui);
6077 VSUBUWS VSUBUWS_DEPR3
6078 vui __builtin_vec_vsubuws (vbi, vui);
6079 VSUBUWS VSUBUWS_DEPR4
6080 vui __builtin_vec_vsubuws (vui, vbi);
6081 VSUBUWS VSUBUWS_DEPR5
6083 [VEC_VSUM4SBS, vec_vsum4sbs, __builtin_vec_vsum4sbs]
6084 vsi __builtin_vec_vsum4sbs (vsc, vsi);
6085 VSUM4SBS VSUM4SBS_DEPR1
6087 [VEC_VSUM4SHS, vec_vsum4shs, __builtin_vec_vsum4shs]
6088 vsi __builtin_vec_vsum4shs (vss, vsi);
6089 VSUM4SHS VSUM4SHS_DEPR1
6091 [VEC_VSUM4UBS, vec_vsum4ubs, __builtin_vec_vsum4ubs]
6092 vui __builtin_vec_vsum4ubs (vuc, vui);
6093 VSUM4UBS VSUM4UBS_DEPR1
6095 [VEC_VTDCDP, vec_test_data_class_dp, __builtin_vec_test_data_class_dp, _ARCH_PWR9]
6096 vbll __builtin_vec_test_data_class_dp (vd, const int);
6099 [VEC_VTDCSP, vec_test_data_class_sp, __builtin_vec_test_data_class_sp, _ARCH_PWR9]
6100 vbi __builtin_vec_test_data_class_sp (vf, const int);
6103 [VEC_UNS_DOUBLEE, vec_uns_doublee, __builtin_vec_uns_doublee]
6104 vd __builtin_vec_uns_doublee (vui);
6105 UNS_DOUBLEE_V4SI UNS_DOUBLEE_DEPR1
6107 [VEC_UNS_DOUBLEH, vec_uns_doubleh, __builtin_vec_uns_doubleh]
6108 vd __builtin_vec_uns_doubleh (vui);
6109 UNS_DOUBLEH_V4SI UNS_DOUBLEH_DEPR1
6111 [VEC_UNS_DOUBLEL, vec_uns_doublel, __builtin_vec_uns_doublel]
6112 vd __builtin_vec_uns_doublel (vui);
6113 UNS_DOUBLEL_V4SI UNS_DOUBLEL_DEPR1
6115 [VEC_UNS_DOUBLEO, vec_uns_doubleo, __builtin_vec_uns_doubleo]
6116 vd __builtin_vec_uns_doubleo (vui);
6117 UNS_DOUBLEO_V4SI UNS_DOUBLEO_DEPR1
6119 [VEC_VUPKHPX, vec_vupkhpx, __builtin_vec_vupkhpx]
6120 vui __builtin_vec_vupkhpx (vus);
6121 VUPKHPX VUPKHPX_DEPR1
6122 vui __builtin_vec_vupkhpx (vp);
6123 VUPKHPX VUPKHPX_DEPR2
6125 [VEC_VUPKHSB, vec_vupkhsb, __builtin_vec_vupkhsb]
6126 vss __builtin_vec_vupkhsb (vsc);
6127 VUPKHSB VUPKHSB_DEPR1
6128 vbs __builtin_vec_vupkhsb (vbc);
6129 VUPKHSB VUPKHSB_DEPR2
6131 [VEC_VUPKHSH, vec_vupkhsh, __builtin_vec_vupkhsh]
6132 vsi __builtin_vec_vupkhsh (vss);
6133 VUPKHSH VUPKHSH_DEPR1
6134 vbi __builtin_vec_vupkhsh (vbs);
6135 VUPKHSH VUPKHSH_DEPR2
6137 [VEC_VUPKHSW, vec_vupkhsw, __builtin_vec_vupkhsw, _ARCH_PWR8]
6138 vsll __builtin_vec_vupkhsw (vsi);
6139 VUPKHSW VUPKHSW_DEPR1
6140 vbll __builtin_vec_vupkhsw (vbi);
6141 VUPKHSW VUPKHSW_DEPR2
6143 [VEC_VUPKLPX, vec_vupklpx, __builtin_vec_vupklpx]
6144 vui __builtin_vec_vupklpx (vus);
6145 VUPKLPX VUPKLPX_DEPR1
6146 vui __builtin_vec_vupklpx (vp);
6147 VUPKLPX VUPKLPX_DEPR2
6149 [VEC_VUPKLSB, vec_vupklsb, __builtin_vec_vupklsb]
6150 vss __builtin_vec_vupklsb (vsc);
6151 VUPKLSB VUPKLSB_DEPR1
6152 vbs __builtin_vec_vupklsb (vbc);
6153 VUPKLSB VUPKLSB_DEPR2
6155 [VEC_VUPKLSH, vec_vupklsh, __builtin_vec_vupklsh]
6156 vsi __builtin_vec_vupklsh (vss);
6157 VUPKLSH VUPKLSH_DEPR1
6158 vbi __builtin_vec_vupklsh (vbs);
6159 VUPKLSH VUPKLSH_DEPR2
6161 [VEC_VUPKLSW, vec_vupklsw, __builtin_vec_vupklsw, _ARCH_PWR8]
6162 vsll __builtin_vec_vupklsw (vsi);
6163 VUPKLSW VUPKLSW_DEPR1
6164 vbll __builtin_vec_vupklsw (vbi);
6165 VUPKLSW VUPKLSW_DEPR2